geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Colasurdo <>
Subject Re: Clustering Geronimo with Open Terracotta
Date Fri, 16 Feb 2007 23:36:08 GMT
Comments inline..

Gianny Damour wrote:
> On 17/02/2007, at 3:32 AM, Dave Colasurdo wrote:
> <snip>
>> Tomcat and Mod-jk provide the ability to have the load balancer lock a 
>> particular httpsession (identified by session cookie) to a specific 
>> cluster member.  This cluster member will serve all the requests for 
>> this session until the cluster member tops/fails and failover to a new 
>> cluster member  occurs.  This "stickiness" is quite useful for the 
>> case of multi-frame JSPs where it is important that all concurrent 
>> requests are executing in the same JVM (as per Java EE  
>> specifications).  Hmmm, now that Terracotta provides the concept of a 
>> global cross-node JVM, I'm wondering how important this is now .. 
>> though still seems there would be  performance overhead in locking 
>> across JVMs.. so I think Sticky Session is still useful..
> Hi,
> I think that if you have sticky load balancing, you do not need to 
> acquire a distributed lock to service concurrent requests: requests are 
> proxied to the node hosting the session state; each request acquires a 
> *local* read lock for the associated session (a read lock is acquire 
> such that requests bound to the same session can proceed concurrently).
> This is only when a request is received by a node where the session 
> state cannot be found that a distributed lock is to be acquired.
> Thanks,
> Gianny

Hi Gianny,

Thanks for the input.  I agree no distributed lock is required with 
sticky session since all request are guaranteed to be running in the 
same JVM.

I believe that Terracotta transparently shuttles the session data 
between the cluster members without the application server ever knowing 
that the session was actually created in a different JVM.

For the case where sticky session isn't configured it is possible for a 
multiframe JSP to spray requests to multiple servers concurrently.  The 
servlet specification states:

"Within an application marked as distributable, all requests that are 
part of a session must be handled by one Java Virtual Machine1 (“JVM”) 
at a time."

So, for this case there would need to be some sort of distributed lock. 
    I believe Open Terracotta provides a mechanism to lock across JVMs 
though believe sticky port would be a much better performing solution.


View raw message