Scaling Seaside apps (was: [Seaside] About SToR)
ramon.leon at allresnet.com
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"
> 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