[Seaside] Re: New errors, old errors in the dolphin's seaside

Esteban A. Maringolo eMaringolo at smalltalking.net
Mon Nov 28 20:03:58 CET 2005


Avi Bryant escribió:
> On Nov 26, 2005, at 6:59 PM, Esteban A. Maringolo wrote:
>> Now we must wait and authoritative answer for the side effects of no
>> using a weak container.

> Well, the side effects are that memory use for an individual session  
> will grow faster.  When the session itself is expired, the memory  will 
> be reclaimed, so there's no danger of a long-term leak, but the  runtime 
> footprint of your seaside application will be larger (and  more tied to 
> the length of the session).

Ok, that's tolerable at this stage of the port.

What should be the expected behavior of weak dictionaries (or 
equivalents) to be used in the registries?
Weak keys or weak values?

Can you write a SUnit test case, so I can make it pass?

> I'm actually not convinced that expiring parts of a session via weak  
> dictionaries is that great an idea anyway.  For one thing, some  people 
> (especially Netstyle, who have some of the more heavily used  Seaside 
> deployments out there) have seen some horrific CPU usage in  Squeak when 
> the weak dictionaries grow too large.  For another, the  references 
> between continuations get messy enough that it's very hard  to predict 
> whether and when any memory is actually getting  collected.  And 
> finally, expiring "old" pages can lead to some really  bad user 
> experiences if they ever open up multiple windows on the  same session 
> (since you can easily use one window to push the  frontmost page of the 
> other window into expiry, at which point that  other window is totally 
> unusable).  So I'd like to find some other  ways to manage long-running 
> sessions.

Some kind of undertaker process?


Best regards,

--
Esteban.



More information about the Seaside mailing list