geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jules Gosnell <>
Subject Re: Clustering
Date Wed, 19 Oct 2005 09:04:06 GMT
Dave Colasurdo wrote:

> Jeff Genender wrote:
>> Geir Magnusson Jr. wrote:
>>> What %age of users will be able to take advantage of this?  90%? :)
>>> What other ways are you thinking of clustering?
>> JMS, EJB, Caching, etc.
> Here are some of the characteristics of clustering that we should 
> consider:
> JSP/Servlet Load Balancing
> -HttpSession Sticky port/Affinity
> -HttpSession failover
> -File based persistence
> -Database persistence
> -Memory replication (all -> all)
> -Memory replication (one -> designated server(s))

WADI should address all of these and more

> Heartbeat/Health Check

I guess that this would be addressed by the underlying clustering 
substrate (e.g. activecluster, jgroups etc) and used to notify 
membership changes to code layered on top of it.

> EJB Load Balancing (EJBHome stub or EJBObject stub)
> -JNDI Lookup OR
> -Smart Stub (Client) OR
> -IIOP runtime (Client)OR
> -Interceptor Proxy
> EJB Failover
> -Stateless Session Bean
> -Stateful Session Bean (sticky)
> -Entity Bean
> -MDB??
Clustered EJBs have yet to be implemented, but conversations have been 
going on - off the top of my head (and my EJB knowledge is pretty rusty) :

We need cluster-aware client-side stubs with pluggable load-balancing 
policies for both Home and Bean instances.

SLSB - since they are stateless, an invocation can go to any node and be 
processed by any "well written" bean.

MDB - same as SLSB - I think ?

SFSB - more complex, since state is involved. We hope to reuse WADI 
technology here to manage the state in the same way as the web-tier. 
SFSBs should be easier to handle than HttpSessions because we have 
complete control over the load-balancer (assuming that it is a smart 
stub that we have written), the EJB container only allows one thread 
through them at one time (concurrent threads may coexist in an 
HttpSession) and EJBs are a much more distribution-friendly architecture.

Entity - since they just map to a shared resource, should not present 
state-related problems, migration of an entity is just dopping it from 
the cache on one node and loading it on another.

> JNDI clustering
> -Shared global JNDI Tree OR
> -Independent JNDI OR
> -Centralized JNDI (on single server)
This is an area that I have not given much consideration and we really 
need to get a group together to consider the options and start working 
in this area - is anyone interested ?

> Web Service Clustering

does this have any specific requirements over and above those provided 
by basic web tier clustering - i.e. load-balancing/affinity and 
httpsession management ? If so, lets discuss them and I will see how 
they might be put into WADI.

Stateful, cross context dispatch between portlets complicates the 
management of HttpSessions, so it is possible that there is something in 
the web-services spec which will have a bearing.

> JDBC Clustering

I haven't really considered this either - I tend to leave this tier to 
the vendors... Do we need to do anything here other than offer decent 
JCA integrations ?

> JMS Clustering

activemq has this, so I am assuming that we have this covered.

> Management Capability
> -Adding to a cluster
>  -Manual addition
>  -Automatic discovery

we need a nice small piece of code so that e.g. ejb clients can 
auto-discover a clustered geronimo web-tier.

> -Deploying applications to a cluster
>  -Manual deployment to each each member OR
>  -Centralized deployment OR
>  -Farming (hot deployment across a cluster)
> -Cluster Configuration Model
>  -Independent OR
>  -Shared File System OR
>  -Managed
Management and configuration are both very large topics that are being 
addressed outside clustering as well. I haven't given these much thought 
either, although I am sure that others have - I guess that we need a 
thread on this too. I would be interested in discussing the requirements 
and integration between the actual implementation of the clustering 
stuff and its management tier.


> -Dave-

"Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it."

 * Jules Gosnell
 * Partner
 * Core Developers Network (Europe)
 * Open Source Training & Support.

View raw message