[Seaside] Looping through all children as a performance issue

Frank Berger frank.berger.software at web.de
Thu Jan 17 19:49:47 UTC 2008

Hello all,

Our small team has been working over most of 2007 on writing a portal website based on Seaside (currently still 2.7) in VW5, which expects several hundred to, a bit later, even several thousand simultaneous users, of course not on one server hardware. I will soon introduce it here.

I have only joined in a few months ago and I am therefore still in the process of understanding the internals of Seaside - and there are various aspects where I am having my problems with despite the overall excellent idea to enhance Smalltalk to a web server. 

For this I do want to sincerely thank the initiators.

Performance is currently my main concern, especially the permanent looping through all children. Our portal consists of currently about 25 nested tab views and that will grow up to over 100 till the end of this year.

I find the concept of looping through all children for every request quite awkward and it seems to me that this is wasting a lot of time. Also it requires that all needed controller classes be initialized during start-up although most will never be needed for a session.

For me this is like on a hotel reception where a visitor (request) is asking in which room a specific person (callback ID) lives. In a hotel the concierge would look the name up on a list and tell the visitor the room number and how to get there straight away.

Seaside is more sportive: It runs through all floors, knocks on every door and checks all the names of every person in every room – for every request. Pardon, but I find this a very strange behaviour that nobody would practice. 

My questions:

- Are there any plans to create a central dictionary, which can be interrogated by a request and which avoids endless looping through the entire tree?

- Are there any serious reasons why this is not done? Or cannot be done?
(Maybe I completely misunderstood something?)

If both questions are answered with No then we will most likely develop such an enhancement (after moving to 2.8), because I doubt - from my current limited state of knowledge - that this current procedure makes sense and that we could and would want to live with it.

Best regards

Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!

More information about the seaside mailing list