perl-asp mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Josh Chamas <>
Subject Re: SessionSerialize and MaxClients
Date Mon, 12 Jan 2004 07:46:24 GMT
Philip Mak wrote:
> On Sun, Jan 11, 2004 at 07:40:16PM -0800, Josh Chamas wrote:
>>SessionSerialize only serializes access to the $Session object, so
>>you would want to have at least as many MaxClients as there are
>>possible concurrent web clients you want to support.
> Oh, so if I do "$Session->{count}++;" in my script, for example, then
> all other scripts are blocked while that line is executing, but
> otherwise they can execute concurrently?

Only scripts executing with the same $Session object ( referenced by session-id )
would be blocked.  When SessionSerialize is set, the $Session object is locked
during script execution allowing for only one concurrent script executing at
a time for the web client sending the session-id.  Without SessionSerialize set,
the command $Session->{count}++ only locks the $Session object for the duration
of the read & write operations as applicable.  This would *not* be an atomic operation,
and the only way to do this to ensure it atomic would be to:


unless you had SessionSerialize set.

So, with SessionSerialize set, scripts can be executed concurrently assuming
that all the web clients coming in have different session-ids which they should.

> Ahh, I see. (If the httpd process is proxied by mod_accel or something
> similar which slurps the mod_perl output and spoonfeeds it to a slow
> client, then I assume the mod_perl httpd's MaxClients could be 1 when
> Script_OnStart calls $Application->Lock?)

Yes, but even then, to get maximum capacity, I would probably have 2 MaxClients,
since part of the request stage is handled outside the Apache::ASP handler.
But doing something like $Application->Lock is probably a bad idea generally,
so I hope this is just a theoretical discussion :-)


Josh Chamas, Founder                   phone:925-552-0128
Chamas Enterprises Inc.      
NodeWorks Link Checker       

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message