Scaling Seaside apps (was: [Seaside] About SToR)

Ramon Leon ramon.leon at
Mon Jul 31 21:57:16 UTC 2006

> Btw, the approach of wrapping each request in an commit block 
> (or as we do - just an abort before performing the request 
> (we run modifications to the model in separately started 
> transactions)) has a noticable "feel"
> penalty. 
> Seaside typically does a redirect so each "click" will result 
> in two http requests - each doing an abort. And even if 
> nothing at all has changed in Magma (and we are still running 
> Magma in the same image even, so there is no roundtrip 
> involved) it gives a sluggish feeling. Doing a cheap trick 
> (which will not work if we go multi-image) by using a 
> transaction counter in the image we can avoid making the 
> aborts if we know that there have been no transactions since 
> last abort. This improved the "feel" a LOT.
> regards, Göran

I abandoned this approach as well, committing on every request seems to have
a huge penalty when using GOODS.  Seems you can't hide transactions
completely.  I just added a commit method on session that delegates to the
db, and simply call self session commit whenever I feel it necessary.
Response times are far better and snappier than wrapping the entire request
in a commit.

More information about the Seaside mailing list