You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Jeff Genender <jg...@savoirtech.com> on 2005/10/14 13:48:28 UTC

Clustering

Now that we have achieved the covetted J2EE Certification, we need to 
start thinking about some of the things we will need to have in Geronimo 
in order to be mass adopted by the Enterprise.

IMHO, I think one of the huge holes is clustering.  This is a heavy need 
by many companies and I believe that until we get a powerful clustering 
solution into G, it will not be taken as a serious J2EE contender.

So, with that said, I wanted to start a discussion thread on clustering 
and what we need to do to get this into Geronimo.  I personally would 
like to be involved in this (thus the reason for me starting this 
thread) - yeah, since Tomcat is done, now I am bored ;-).

I was going over the lists and emails and had some great discussion with 
Jules on the WADI project he has built.  This seems compelling to me.  I 
also noticed Active Cluster as a possibility.

So lets start from the top.  Do we use an already available clusering 
engine or do we roll our own?  Here is a small list of choices I have 
reviewed and it is by no means complete...

1) WADI
2) Active Cluster
3) Leverage the Tomcat Clustering engine

So here are some of my questions...

How complete is WADI and Active Cluster?  Both look interesting to me. 
My only concern with Active Cluster is it seems to be JMS based, which I 
think may be slow for high performance clustering (am I incorrect on 
this?).  How mature is WADI?

Thoughts and opinions are welcomed.

Jeff

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Jules Gosnell wrote:

> Bruce Snyder wrote:
>
>> On 10/15/05, Jules Gosnell <ju...@coredevelopers.net> wrote:
>>
>>  
>>
>>>>> WADI currently sits on top of ActiveCluster, which it uses for
>>>>> membership notification and ActiveMQ which is used for transport by
>>>>> both layers. ActiveMQ has pluggable protocols, including a peer://
>>>>> protocol which allows peers to talk directly to one another (this
>>>>> should put to bed fears of a JMS based solution not scaling -
>>>>> remember, JMS is just an API). So you do not need to choose between
>>>>> WADI and ActiveCluster - they are complimentary. ActiveCluster can
>>>>> also (I believe) use JGroups as a transport - I haven't tried it.
>>>>>
>>>>> ActiveSpace is another technology in this area (distributed caching)
>>>>> and it looks as if WADI and ActiveSpace will become more closely
>>>>> aligned. So this may also be considered a complimentary technology.
>>>>>
>>>>> Both Tomcat and Jetty currently have existing clustering solutions. I
>>>>> looked closely at the Tomcat solutions before starting out on WADI
>>>>> and knew all about the Jetty solution, because I wrote it :-). WADI
>>>>> is my answer to what I see as shortcomings in all of the existing
>>>>> open source approaches to this problem-space.
>>>>>
>>>>>       
>>>>
>>>> Can you provide a quick high level description of the advantages of
>>>> WADI over Tomcat and Jetty clustering solutions?
>>>>     
>>>
>>> Jetty uses 1->all replication over jgroups, as I believe 1 Tomcat
>>> session manager does. I think the other Tomcat session manager also 
>>> does
>>> 1->all replication, but over its own protocol. Perhaps Jeff can confirm
>>> this. I think TC's 'PersistentManager' is also able to write changed
>>> sessions out to disc at the end of the request.
>>>
>>> 1->all, for the reasons given above will not scale. The more nodes you
>>> add, the more notifications each will have to react to and the more
>>> sessions it will have to hold. you are simply deferring your problems
>>> for a little while. Your only way out is to partition cluster and
>>> sacrifice your availability. When WADI's in-vm replication strategy is
>>> finished, I think that this will make it a clear winner for anyone
>>> wishing to cluster more than  2-3 nodes.
>>>   
>>
>>
>> I know that this may sound a bit off the wall, but what about
>> implementing the BitTorrent protocol
>> (http://www.bittorrent.com/protocol.html)? The purpose of the
>> BitTorrent protocol is to redistribute the cost of downloading a file
>> of (potentially) unlimited size to the downloaders themselves by
>> automatically recruiting the downloaders to upload chunks of the file
>> to their peer downloaders. There's a very good paper available
>> (http://www.bittorrent.com/bittorrentecon.pdf) that outlines the
>> BitTorrent protocol at a higher level and explains the economic theory
>> around which the protocol was built and how it has already been proven
>> through it's many implementations and high utilization throughout the
>> world today.
>>  
>>
> interesting idea :-)
>
> Off the top of my head, I guess the main difference in usecase is the 
> scale of our requirement (generally much smaller objects over LAN, 
> instead of large objects over WAN) and the frequency with which they 
> change - all the time vs. never. Bittorent uses massive storage 
> redundancy to ensure the survival of cached items - I guess they can 
> do this because disc is cheap, whereas for an in-vm replication 
> scheme, we want to keep sessions in memory to keep things fast and the 
> possible footprint of each node is limited to a few gig - the smaller 
> the better. So we need to keep the number or replicas down to the bare 
> minimum.
>
> That's not to say that we can't learn anything from bittorrent. I'll 
> give it some thought today and try to do some reading around it.
>
> Cheers, Bruce
>
> Jules
>
Of course, all this stuff will be abstracted out into pluggable 
strategies anyway - so there is no reason why we shouldn't have 
bittorrent-based replication strategy as well as whatever i have already 
come up with :-)

Jules

>
>> Bruce
>> -- 
>> perl -e 'print 
>> unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
>> );'
>>
>> The Castor Project
>> http://www.castor.org/
>>
>> Apache Geronimo
>> http://geronimo.apache.org/
>>  
>>
>
>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Bruce Snyder wrote:

>On 10/15/05, Jules Gosnell <ju...@coredevelopers.net> wrote:
>
>  
>
>>>>WADI currently sits on top of ActiveCluster, which it uses for
>>>>membership notification and ActiveMQ which is used for transport by
>>>>both layers. ActiveMQ has pluggable protocols, including a peer://
>>>>protocol which allows peers to talk directly to one another (this
>>>>should put to bed fears of a JMS based solution not scaling -
>>>>remember, JMS is just an API). So you do not need to choose between
>>>>WADI and ActiveCluster - they are complimentary. ActiveCluster can
>>>>also (I believe) use JGroups as a transport - I haven't tried it.
>>>>
>>>>ActiveSpace is another technology in this area (distributed caching)
>>>>and it looks as if WADI and ActiveSpace will become more closely
>>>>aligned. So this may also be considered a complimentary technology.
>>>>
>>>>Both Tomcat and Jetty currently have existing clustering solutions. I
>>>>looked closely at the Tomcat solutions before starting out on WADI
>>>>and knew all about the Jetty solution, because I wrote it :-). WADI
>>>>is my answer to what I see as shortcomings in all of the existing
>>>>open source approaches to this problem-space.
>>>>
>>>>        
>>>>
>>>Can you provide a quick high level description of the advantages of
>>>WADI over Tomcat and Jetty clustering solutions?
>>>      
>>>
>>Jetty uses 1->all replication over jgroups, as I believe 1 Tomcat
>>session manager does. I think the other Tomcat session manager also does
>>1->all replication, but over its own protocol. Perhaps Jeff can confirm
>>this. I think TC's 'PersistentManager' is also able to write changed
>>sessions out to disc at the end of the request.
>>
>>1->all, for the reasons given above will not scale. The more nodes you
>>add, the more notifications each will have to react to and the more
>>sessions it will have to hold. you are simply deferring your problems
>>for a little while. Your only way out is to partition cluster and
>>sacrifice your availability. When WADI's in-vm replication strategy is
>>finished, I think that this will make it a clear winner for anyone
>>wishing to cluster more than  2-3 nodes.
>>    
>>
>
>I know that this may sound a bit off the wall, but what about
>implementing the BitTorrent protocol
>(http://www.bittorrent.com/protocol.html)? The purpose of the
>BitTorrent protocol is to redistribute the cost of downloading a file
>of (potentially) unlimited size to the downloaders themselves by
>automatically recruiting the downloaders to upload chunks of the file
>to their peer downloaders. There's a very good paper available
>(http://www.bittorrent.com/bittorrentecon.pdf) that outlines the
>BitTorrent protocol at a higher level and explains the economic theory
>around which the protocol was built and how it has already been proven
>through it's many implementations and high utilization throughout the
>world today.
>  
>
interesting idea :-)

Off the top of my head, I guess the main difference in usecase is the 
scale of our requirement (generally much smaller objects over LAN, 
instead of large objects over WAN) and the frequency with which they 
change - all the time vs. never. Bittorent uses massive storage 
redundancy to ensure the survival of cached items - I guess they can do 
this because disc is cheap, whereas for an in-vm replication scheme, we 
want to keep sessions in memory to keep things fast and the possible 
footprint of each node is limited to a few gig - the smaller the better. 
So we need to keep the number or replicas down to the bare minimum.

That's not to say that we can't learn anything from bittorrent. I'll 
give it some thought today and try to do some reading around it.

Cheers, Bruce

Jules


>Bruce
>--
>perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
>);'
>
>The Castor Project
>http://www.castor.org/
>
>Apache Geronimo
>http://geronimo.apache.org/
>  
>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Bruce Snyder <br...@gmail.com>.
On 10/15/05, Jules Gosnell <ju...@coredevelopers.net> wrote:

> >> WADI currently sits on top of ActiveCluster, which it uses for
> >> membership notification and ActiveMQ which is used for transport by
> >> both layers. ActiveMQ has pluggable protocols, including a peer://
> >> protocol which allows peers to talk directly to one another (this
> >> should put to bed fears of a JMS based solution not scaling -
> >> remember, JMS is just an API). So you do not need to choose between
> >> WADI and ActiveCluster - they are complimentary. ActiveCluster can
> >> also (I believe) use JGroups as a transport - I haven't tried it.
> >>
> >> ActiveSpace is another technology in this area (distributed caching)
> >> and it looks as if WADI and ActiveSpace will become more closely
> >> aligned. So this may also be considered a complimentary technology.
> >>
> >> Both Tomcat and Jetty currently have existing clustering solutions. I
> >> looked closely at the Tomcat solutions before starting out on WADI
> >> and knew all about the Jetty solution, because I wrote it :-). WADI
> >> is my answer to what I see as shortcomings in all of the existing
> >> open source approaches to this problem-space.
> >>
> > Can you provide a quick high level description of the advantages of
> > WADI over Tomcat and Jetty clustering solutions?
>
> Jetty uses 1->all replication over jgroups, as I believe 1 Tomcat
> session manager does. I think the other Tomcat session manager also does
> 1->all replication, but over its own protocol. Perhaps Jeff can confirm
> this. I think TC's 'PersistentManager' is also able to write changed
> sessions out to disc at the end of the request.
>
> 1->all, for the reasons given above will not scale. The more nodes you
> add, the more notifications each will have to react to and the more
> sessions it will have to hold. you are simply deferring your problems
> for a little while. Your only way out is to partition cluster and
> sacrifice your availability. When WADI's in-vm replication strategy is
> finished, I think that this will make it a clear winner for anyone
> wishing to cluster more than  2-3 nodes.

I know that this may sound a bit off the wall, but what about
implementing the BitTorrent protocol
(http://www.bittorrent.com/protocol.html)? The purpose of the
BitTorrent protocol is to redistribute the cost of downloading a file
of (potentially) unlimited size to the downloaders themselves by
automatically recruiting the downloaders to upload chunks of the file
to their peer downloaders. There's a very good paper available
(http://www.bittorrent.com/bittorrentecon.pdf) that outlines the
BitTorrent protocol at a higher level and explains the economic theory
around which the protocol was built and how it has already been proven
through it's many implementations and high utilization throughout the
world today.

Bruce
--
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

The Castor Project
http://www.castor.org/

Apache Geronimo
http://geronimo.apache.org/

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Dave Colasurdo wrote:

>
>
> Jules Gosnell wrote:
>
>> Jeff Genender wrote:
>>
>>> Now that we have achieved the covetted J2EE Certification, we need 
>>> to start thinking about some of the things we will need to have in 
>>> Geronimo in order to be mass adopted by the Enterprise.
>>>
>>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>>> need by many companies and I believe that until we get a powerful 
>>> clustering solution into G, it will not be taken as a serious J2EE 
>>> contender.
>>>
>>> So, with that said, I wanted to start a discussion thread on 
>>> clustering and what we need to do to get this into Geronimo.  I 
>>> personally would like to be involved in this (thus the reason for me 
>>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>>
>>> I was going over the lists and emails and had some great discussion 
>>> with Jules on the WADI project he has built.  This seems compelling 
>>> to me.  I also noticed Active Cluster as a possibility.
>>>
>>> So lets start from the top.  Do we use an already available 
>>> clusering engine or do we roll our own?  Here is a small list of 
>>> choices I have reviewed and it is by no means complete...
>>>
>>> 1) WADI
>>> 2) Active Cluster
>>> 3) Leverage the Tomcat Clustering engine
>>>
>>> So here are some of my questions...
>>>
>>> How complete is WADI and Active Cluster?  Both look interesting to 
>>> me. My only concern with Active Cluster is it seems to be JMS based, 
>>> which I think may be slow for high performance clustering (am I 
>>> incorrect on this?).  How mature is WADI?
>>
>>
>>
>> Here is a status report on WADI.
>>
>> I'm developing it full time.
>>
>> A snapshot is available at wadi.codehaus.org - documentation is in 
>> the wiki - at the moment the documentation (rather minimalist) is 
>> more up to date than the snapshot, but I will try to get a fresh one 
>> out next week.
>>
>> WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 
>> and Jetty-5.1/60 (it can actually migrate sessions between all four 
>> in the same cluster).
>> It comprises a vertical stack of pluggable caches/stores (memory, 
>> local disc, db etc) through which sessions are demoted as they age 
>> and promoted as and when required to service a request.
>
>
> Can you please clarify the purpose of promotion/demotion of 
> httpsessions? Is this a mechanism to age old entries out of the cache?

I envisage a typically configured stack to look like this : 
memory<->localDisc<->cluster<->db.

The db is only used to load sessions if you are the first cluster member 
to start, or to store them if you are the last cluster member to stop.
The cluster store gives you access to the sessions held on every other 
node in the cluster (more about this later)
The localDisc is where sessions are paged out to by a pluggable eviction 
strategy running in the memory store (currently based on inactivity, but 
could take into account number of sessions in mem).
Memory is where sessions and requests are combined in the rendering of 
pages.

A request enters the top of the stack and travels downwards towards the 
cluster store, until its session is found (or not), at which point the 
session is promoted into memory and the request rendered. The session 
will stay in memory, until evicted downwards, explicitly invalidated, or 
(if the eviction strategy is e.g. NeverEvict) implicitly invalidated due 
to time out.

> How does this relate to httpsession inactivity timeouts?

Orthogonally. i thought about pushing timed out sessions into another 
store so that they could be data-mined, but figured that once a session 
had been destroyed (all sorts of listeners might have fired) it would be 
asking for trouble to try to serialise it. If the application wanted to 
keep an archived copy, it could do it via one of these listseners. The 
evicters are just there to spool stuff out onto e.g. disc, so that you 
can hold larger sessions for more clients.

> Is the cache size configurable?
>
It would be up to the evicter to use the number of local entries in its 
eviction algorithm. I don't have an evicter that does this currently, 
but I don't think it would be hard to write one.

>> This stack may be connected horizontally to a cluster by inserting a 
>> clustered store, which uses a distributed hash table (currently 
>> un-replicated, but I am working on it) to share state around the 
>> clusters members in a scalable manner. WADI has a working mod_jk 
>> integration.
>
>
> Does this mean that each cluster member shares it's httpsession data 
> with all of the other members (1-> all) or is there the notion of 
> limiting the httpsession replication to one (or a few) designated 
> partners?

This is the most interesting and challenging part of WADI. I learnt from 
my early experiences with httpsession distribution that 1->all 
replication is simply a no-go. The point of having a large number of 
nodes in a cluster is that your availablility becomes 
average-node-availability^number-of-nodes, not that your architecture 
forces you to partition your cluster into n/2 "micro-clusters", reducing 
your availability to average-node-availability^2.

There are two distinct issues to deal with - location and replication.

I have solved the first issue (althought the code is not ready for prime 
time yet). The cluster has a fixed number of 'buckets'. Responsibility 
for these buckets is divided between the cluster members, and redivided 
on membership changes. Each bucket contains a map of 
session-id:location. A Session's id is used to map it to a bucket. 
Sessions are free to live on any node in the cluster. If a session is 
created/destroyed/migrated, its bucket owner is notified. Requests are 
expected to fall 99/100 on the node holding the relevant session, so, in 
this case, everything will hapen in-vm. Occasionally, due to node 
maintenance, load-balancer confusion etc, requests will fall elsewhere. 
In this case the receiving node can ask the bucket owner for the 
session's location and either redirect/proxy the request to the session, 
or migrate the session in underneath the incoming request. Since only 
one node needs to be informed of a session's location, migrating a 
session does not need to involve notification to every cluster member of 
the new location.

I am working on replication at the moment - here is what I envisage - 
every session will be implemented via a master/primary and a number (n) 
slaves/secondaries. I expect n to usually be 1-2. Slaves will be 
notified of changes to the master either synchronously or asynchronously 
at some point (another pluggable strategy) after they occur. The master 
and bucket owner will know the location of master and slaves. Death of 
the master will result in a slave being promoted to master and another 
slave being recruited. If a request should land on its sessions slave, 
rather than migrate  the session from its master and then find you have 
to recruit a new slave (to avoid having master and slave colocated), 
slave and master may just arrange with bucket owner to swap roles.

This actually just describes in-vm replication, which I hope will be a 
single replication backend. Other backends may include e.g. backup to a 
db etc.

>
>
>>
>> WADI currently sits on top of ActiveCluster, which it uses for 
>> membership notification and ActiveMQ which is used for transport by 
>> both layers. ActiveMQ has pluggable protocols, including a peer:// 
>> protocol which allows peers to talk directly to one another (this 
>> should put to bed fears of a JMS based solution not scaling - 
>> remember, JMS is just an API). So you do not need to choose between 
>> WADI and ActiveCluster - they are complimentary. ActiveCluster can 
>> also (I believe) use JGroups as a transport - I haven't tried it.
>>
>> ActiveSpace is another technology in this area (distributed caching) 
>> and it looks as if WADI and ActiveSpace will become more closely 
>> aligned. So this may also be considered a complimentary technology.
>>
>> Both Tomcat and Jetty currently have existing clustering solutions. I 
>> looked closely at the Tomcat solutions before starting out on WADI 
>> and knew all about the Jetty solution, because I wrote it :-). WADI 
>> is my answer to what I see as shortcomings in all of the existing 
>> open source approaches to this problem-space.
>>
> Can you provide a quick high level description of the advantages of 
> WADI over Tomcat and Jetty clustering solutions?

Jetty uses 1->all replication over jgroups, as I believe 1 Tomcat 
session manager does. I think the other Tomcat session manager also does 
1->all replication, but over its own protocol. Perhaps Jeff can confirm 
this. I think TC's 'PersistentManager' is also able to write changed 
sessions out to disc at the end of the request.

1->all, for the reasons given above will not scale. The more nodes you 
add, the more notifications each will have to react to and the more 
sessions it will have to hold. you are simply deferring your problems 
for a little while. Your only way out is to partition cluster and 
sacrifice your availability. When WADI's in-vm replication strategy is 
finished, I think that this will make it a clear winner for anyone 
wishing to cluster more than  2-3 nodes.

WADI, is also, to my knowledge, the only open source session manager to 
really resolve concurrency and serialisation issues within the 
httpsession properly. You cannot serialise a session safely until you 
are sure that no user request is running through it. You (probably) 
cannot migrate or replicate it without serialisation. WADI uses locking 
policies to ensure that container threads performing housekeeping and 
serialisation cannot collide with application/request threads modifying 
the same object. Jeff, are you aware of anything in TC which does the 
same thing ? I think that they may keep some count of the number of 
request threads active on a session, but last time I looked, I could not 
find code that looked like it was checking this before attempting 
serialisation or invalidation

>
>
>> Some parts of WADI should soon (December) be undergoing some serious 
>> testing. When they pass we will be able to consider them production 
>> ready. Others, notably the distributed hash table are still under 
>> development (although a fairly functional version is available in the 
>> SNAPSHOT).
>>
>> I think that, in the same way Tomcat clustering could be enabled 
>> easily in Geronimo, WADI could also be added by virtue of its 
>> integration with Tomcat/Jetty, but I have been concentrating on my 
>> distributed hash table too hard. If anyone is interested in talking 
>> further about WADI, perhaps trying to plug it into Geronimo (It is 
>> spring-wired and uses spring to register its components with JMX. I 
>> guess it should be simple to hook it into the Geronimo kernel in the 
>> same way, I just haven't had the time), or helping out in any way at 
>> all, I would be delighted to hear from them.
>>
>> I have broached the subject of a common session clustering framework 
>> with members of the OpenEJB team and we have discussed things such as 
>> the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
>> moving towards JCache to facilitate the plugging in of a clustering 
>> substrate. My distributed hash table is also moving in the same 
>> direction.
>>
> So, if I understand correctly, you are working towards some common 
> infrastructure with openejb.. though WADI itself, will not address 
> clustering beyond the Web Tier?

We've had preliminary discussions. I guess, depending on how much WADI 
infrastructure was of interest to OpenEJB, that I would look at 
genericising core pieces so that they could deal with SFSBs as well as 
HttpSessions. In fact, most of the code already deals with a more 
generic abstraction which corresponds roughly to a JCache CacheEntry, so 
this should not be hard. Many of the issues faced in the SFSB clustering 
world are mirrored in the HttpSession world, except that whilst an 
intelligent client-side proxy can solve a lot of location issues for 
your SFSB, HttpSessions have to rely on slightly less intelligent e.g. 
h/w load-balancers...

There are also interesting issues arising from the integration of 
clustered web and ejb tiers, such as the need to colocate httpsessions 
and SFSBs. I have been discussing the possibility of having an 
ApplicationSession object which can house a number of web (portlet spec 
complicates this) and ejb sessions, so that if one migrates, they all 
end up  on the new node together. If we don't have something like this 
in place, your application components may end up scattered all over the 
cluster.

>
> Thanks for the update!
>
Your welcome,


Jules

>> I hope that gives you all a little more information to go on. If you 
>> have any questions, just fire away,
>>
>>
>> Jules
>>
>>
>>>
>>> Thoughts and opinions are welcomed.
>>>
>>> Jeff
>>
>>
>>
>>
>>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.

Jules Gosnell wrote:
> Jeff Genender wrote:
> 
>> Now that we have achieved the covetted J2EE Certification, we need to 
>> start thinking about some of the things we will need to have in 
>> Geronimo in order to be mass adopted by the Enterprise.
>>
>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>> need by many companies and I believe that until we get a powerful 
>> clustering solution into G, it will not be taken as a serious J2EE 
>> contender.
>>
>> So, with that said, I wanted to start a discussion thread on 
>> clustering and what we need to do to get this into Geronimo.  I 
>> personally would like to be involved in this (thus the reason for me 
>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>
>> I was going over the lists and emails and had some great discussion 
>> with Jules on the WADI project he has built.  This seems compelling to 
>> me.  I also noticed Active Cluster as a possibility.
>>
>> So lets start from the top.  Do we use an already available clusering 
>> engine or do we roll our own?  Here is a small list of choices I have 
>> reviewed and it is by no means complete...
>>
>> 1) WADI
>> 2) Active Cluster
>> 3) Leverage the Tomcat Clustering engine
>>
>> So here are some of my questions...
>>
>> How complete is WADI and Active Cluster?  Both look interesting to me. 
>> My only concern with Active Cluster is it seems to be JMS based, which 
>> I think may be slow for high performance clustering (am I incorrect on 
>> this?).  How mature is WADI?
> 
> 
> Here is a status report on WADI.
> 
> I'm developing it full time.
> 
> A snapshot is available at wadi.codehaus.org - documentation is in the 
> wiki - at the moment the documentation (rather minimalist) is more up to 
> date than the snapshot, but I will try to get a fresh one out next week.
> 
> WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 and 
> Jetty-5.1/60 (it can actually migrate sessions between all four in the 
> same cluster).
> It comprises a vertical stack of pluggable caches/stores (memory, local 
> disc, db etc) through which sessions are demoted as they age and 
> promoted as and when required to service a request.

Can you please clarify the purpose of promotion/demotion of 
httpsessions? Is this a mechanism to age old entries out of the cache? 
How does this relate to httpsession inactivity timeouts?
Is the cache size configurable?

> This stack may be connected horizontally to a cluster by inserting a 
> clustered store, which uses a distributed hash table (currently 
> un-replicated, but I am working on it) to share state around the 
> clusters members in a scalable manner. WADI has a working mod_jk 
> integration.

Does this mean that each cluster member shares it's httpsession data 
with all of the other members (1-> all) or is there the notion of 
limiting the httpsession replication to one (or a few) designated 
partners?


> 
> WADI currently sits on top of ActiveCluster, which it uses for 
> membership notification and ActiveMQ which is used for transport by both 
> layers. ActiveMQ has pluggable protocols, including a peer:// protocol 
> which allows peers to talk directly to one another (this should put to 
> bed fears of a JMS based solution not scaling - remember, JMS is just an 
> API). So you do not need to choose between WADI and ActiveCluster - they 
> are complimentary. ActiveCluster can also (I believe) use JGroups as a 
> transport - I haven't tried it.
> 
> ActiveSpace is another technology in this area (distributed caching) and 
> it looks as if WADI and ActiveSpace will become more closely aligned. So 
> this may also be considered a complimentary technology.
> 
> Both Tomcat and Jetty currently have existing clustering solutions. I 
> looked closely at the Tomcat solutions before starting out on WADI and 
> knew all about the Jetty solution, because I wrote it :-). WADI is my 
> answer to what I see as shortcomings in all of the existing open source 
> approaches to this problem-space.
> 
Can you provide a quick high level description of the advantages of WADI 
over Tomcat and Jetty clustering solutions?


> Some parts of WADI should soon (December) be undergoing some serious 
> testing. When they pass we will be able to consider them production 
> ready. Others, notably the distributed hash table are still under 
> development (although a fairly functional version is available in the 
> SNAPSHOT).
> 
> I think that, in the same way Tomcat clustering could be enabled easily 
> in Geronimo, WADI could also be added by virtue of its integration with 
> Tomcat/Jetty, but I have been concentrating on my distributed hash table 
> too hard. If anyone is interested in talking further about WADI, perhaps 
> trying to plug it into Geronimo (It is spring-wired and uses spring to 
> register its components with JMX. I guess it should be simple to hook it 
> into the Geronimo kernel in the same way, I just haven't had the time), 
> or helping out in any way at all, I would be delighted to hear from them.
> 
> I have broached the subject of a common session clustering framework 
> with members of the OpenEJB team and we have discussed things such as 
> the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
> moving towards JCache to facilitate the plugging in of a clustering 
> substrate. My distributed hash table is also moving in the same direction.
> 
So, if I understand correctly, you are working towards some common 
infrastructure with openejb.. though WADI itself, will not address 
clustering beyond the Web Tier?

Thanks for the update!

> I hope that gives you all a little more information to go on. If you 
> have any questions, just fire away,
> 
> 
> Jules
> 
> 
>>
>> Thoughts and opinions are welcomed.
>>
>> Jeff
> 
> 
> 
> 

Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.

Jules Gosnell wrote:
> Jeff Genender wrote:
> 
>> Jules,
>>
>> Thanks for the update.  I like whats been done.  Do you think WADI is 
>> ready begin becoming a part of Geronimo? (i.e ready for prime time)
> 
> 
> I have lots more to do, but I would certainly be interesting in starting 
> integration work with Geronimo. I always had Geronimo in mind whilst 
> working on WADI, it has just been that, until certification, simply 
> implementing specs correctly has been foremost on the G agenda. Now that 
> we have reached this goal, the next one becomes enterprise-readiness. I 
> hope that WADI can help with this. Would you, or anyone else on the 
> list, be interested in taking a look at it and getting involved in the 
> integration ?

Yes...very much so. I would be interested in being one of the key people 
on this...so count me in ;-)

In the mean time I have integrated Tomcat's clustering as an interim.  I 
need to test it, then I will check it in.  But ultimately, I think WADI 
looks to be a great solution for us.

> 
> Jules
> 
>>
>> Jeff
>>
>> Jules Gosnell wrote:
>>
>>> Jeff Genender wrote:
>>>
>>>> Now that we have achieved the covetted J2EE Certification, we need 
>>>> to start thinking about some of the things we will need to have in 
>>>> Geronimo in order to be mass adopted by the Enterprise.
>>>>
>>>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>>>> need by many companies and I believe that until we get a powerful 
>>>> clustering solution into G, it will not be taken as a serious J2EE 
>>>> contender.
>>>>
>>>> So, with that said, I wanted to start a discussion thread on 
>>>> clustering and what we need to do to get this into Geronimo.  I 
>>>> personally would like to be involved in this (thus the reason for me 
>>>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>>>
>>>> I was going over the lists and emails and had some great discussion 
>>>> with Jules on the WADI project he has built.  This seems compelling 
>>>> to me.  I also noticed Active Cluster as a possibility.
>>>>
>>>> So lets start from the top.  Do we use an already available 
>>>> clusering engine or do we roll our own?  Here is a small list of 
>>>> choices I have reviewed and it is by no means complete...
>>>>
>>>> 1) WADI
>>>> 2) Active Cluster
>>>> 3) Leverage the Tomcat Clustering engine
>>>>
>>>> So here are some of my questions...
>>>>
>>>> How complete is WADI and Active Cluster?  Both look interesting to 
>>>> me. My only concern with Active Cluster is it seems to be JMS based, 
>>>> which I think may be slow for high performance clustering (am I 
>>>> incorrect on this?).  How mature is WADI?
>>>
>>>
>>>
>>>
>>> Here is a status report on WADI.
>>>
>>> I'm developing it full time.
>>>
>>> A snapshot is available at wadi.codehaus.org - documentation is in 
>>> the wiki - at the moment the documentation (rather minimalist) is 
>>> more up to date than the snapshot, but I will try to get a fresh one 
>>> out next week.
>>>
>>> WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 
>>> and Jetty-5.1/60 (it can actually migrate sessions between all four 
>>> in the same cluster).
>>> It comprises a vertical stack of pluggable caches/stores (memory, 
>>> local disc, db etc) through which sessions are demoted as they age 
>>> and promoted as and when required to service a request.
>>> This stack may be connected horizontally to a cluster by inserting a 
>>> clustered store, which uses a distributed hash table (currently 
>>> un-replicated, but I am working on it) to share state around the 
>>> clusters members in a scalable manner. WADI has a working mod_jk 
>>> integration.
>>>
>>> WADI currently sits on top of ActiveCluster, which it uses for 
>>> membership notification and ActiveMQ which is used for transport by 
>>> both layers. ActiveMQ has pluggable protocols, including a peer:// 
>>> protocol which allows peers to talk directly to one another (this 
>>> should put to bed fears of a JMS based solution not scaling - 
>>> remember, JMS is just an API). So you do not need to choose between 
>>> WADI and ActiveCluster - they are complimentary. ActiveCluster can 
>>> also (I believe) use JGroups as a transport - I haven't tried it.
>>>
>>> ActiveSpace is another technology in this area (distributed caching) 
>>> and it looks as if WADI and ActiveSpace will become more closely 
>>> aligned. So this may also be considered a complimentary technology.
>>>
>>> Both Tomcat and Jetty currently have existing clustering solutions. I 
>>> looked closely at the Tomcat solutions before starting out on WADI 
>>> and knew all about the Jetty solution, because I wrote it :-). WADI 
>>> is my answer to what I see as shortcomings in all of the existing 
>>> open source approaches to this problem-space.
>>>
>>> Some parts of WADI should soon (December) be undergoing some serious 
>>> testing. When they pass we will be able to consider them production 
>>> ready. Others, notably the distributed hash table are still under 
>>> development (although a fairly functional version is available in the 
>>> SNAPSHOT).
>>>
>>> I think that, in the same way Tomcat clustering could be enabled 
>>> easily in Geronimo, WADI could also be added by virtue of its 
>>> integration with Tomcat/Jetty, but I have been concentrating on my 
>>> distributed hash table too hard. If anyone is interested in talking 
>>> further about WADI, perhaps trying to plug it into Geronimo (It is 
>>> spring-wired and uses spring to register its components with JMX. I 
>>> guess it should be simple to hook it into the Geronimo kernel in the 
>>> same way, I just haven't had the time), or helping out in any way at 
>>> all, I would be delighted to hear from them.
>>>
>>> I have broached the subject of a common session clustering framework 
>>> with members of the OpenEJB team and we have discussed things such as 
>>> the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
>>> moving towards JCache to facilitate the plugging in of a clustering 
>>> substrate. My distributed hash table is also moving in the same 
>>> direction.
>>>
>>> I hope that gives you all a little more information to go on. If you 
>>> have any questions, just fire away,
>>>
>>>
>>> Jules
>>>
>>>
>>>>
>>>> Thoughts and opinions are welcomed.
>>>>
>>>> Jeff
>>>
>>>
>>>
>>>
>>>
>>>
> 
> 

Re: Clustering

Posted by Bruce Snyder <br...@gmail.com>.
On 10/17/05, Jules Gosnell <ju...@coredevelopers.net> wrote:

> >I'm definitely interested in getting involved with this, Jules. In
> >fact, I've already typed in the JCache interfaces and only need to
> >commit them to the Geronimo repo (and then work on converting OpenEJB
> >2 to use them, of course). This spec will most certainly help out any
> >mechanism needing caching.
> >
> >
> >
> Glad to hear we will have a JCache API done - good work.
>
> I have a few provisos about assuming that JCache is THE solution to this
> range of problems and this is the reason why I rejected the JCache API
> on my last redesign of WADI (although I think that the next one will
> have to incorporate it and extend it).

I'm not saying that JCache is *the* solution for the problem set, I
simply threw that out there to let you know that work is done, I just
need to check it in. I was actually waiting to write some tests for it
before I did so, but after speaking to Dain, he reminded me that I
should just put it in the sandbox until I feel it's ready to be moved
to the specs module.

> JCache focusses (as far as my understanding goes), simply on the
> location of the state required by a process and not the location of the
> process itself.

Yes, that's correct. JCache is simply about the data and nothing more.
How you associate that back to the process is up to you. ;-)

> WADI tries to be neutral in this respect and should be
> equally at home relocating state to process or process to state. e.g. I
> can migrate a session in underneath an incoming request, or
> redirect/proxy a request to the node holding the state (and then 'stick'
> the client to this node so that subsequent requests travel directly to
> the session's location). The latter solution has distinct advantages :
>
> 1. Http requests are often much smaller than Http sessions. (the same
> would hold true for an EJB invocation and a SFSB)
>
> 2. Many Http requests may run through an HttpSession concurrently, but
> an HttpSession may only be in one place at once. i.e., if a number of
> nodes all receive an http request for the same session it is quicker for
> them to all relocate their requests to the session in question, where
> they may run concurrently, than to relocate the session from request to
> request which may only be done serially. This is not an issue with an
> SFSB (I assume) since only one thread is allowed access to an SFSB at
> any one time anyway (I think?).
>
> 3. [de]serialisation is expensive and error prone (may tickle bugs in
> application code). HttpSessions may have activation/passivation
> listeners registered (is there an equivalent for SFSBs?) which could be
> expensive to call. If we can avoid moving a session, it is a good thing.
>
> 4. The optimal location for a session is on the same node as its bucket
> owner. If the two can be colocated, notifications about creation,
> relocation and destruction can be run locally instead of remotely. So
> once this colocation is achieved (which it should be from the start,
> since each node can restrict itself to only generating session ids which
> map to buckets of which it is the owner), we want to avoid moving the
> session again, perhaps even if a request for it lands elsewhere.
>
> So, I guess, whilst you have your head in the JCache API and are looking
> at JCache and OpenEJB, these would be very useful facts to consider.
> What is going to be the best way to fit these requirements into an
> architecture that sits around a JCache ? Perhaps we define an additional
> API which allows the relocation of an 'invocation' to a given
> CacheEntry, rather than the other way around. If the JCache instance
> that we are using implements this interface, then we enable the
> request-relocation functionality. Then we will be able to run our stuff
> with other jcache impls (which is bound to be a requirement), or our
> own, in which case you get the extra fn-ality....
>
> Sound like a good idea ?

Yes, a very good idea. I'll keep these questions in mind as I read
through the JCache spec docs again.

Bruce
--
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

The Castor Project
http://www.castor.org/

Apache Geronimo
http://geronimo.apache.org/

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Bruce Snyder wrote:

>On 10/15/05, Jules Gosnell <ju...@coredevelopers.net> wrote:
>  
>
>>Jeff Genender wrote:
>>
>>    
>>
>>>Jules,
>>>
>>>Thanks for the update.  I like whats been done.  Do you think WADI is
>>>ready begin becoming a part of Geronimo? (i.e ready for prime time)
>>>      
>>>
>>I have lots more to do, but I would certainly be interesting in starting
>>integration work with Geronimo. I always had Geronimo in mind whilst
>>working on WADI, it has just been that, until certification, simply
>>implementing specs correctly has been foremost on the G agenda. Now that
>>we have reached this goal, the next one becomes enterprise-readiness. I
>>hope that WADI can help with this. Would you, or anyone else on the
>>list, be interested in taking a look at it and getting involved in the
>>integration ?
>>    
>>
>
>I'm definitely interested in getting involved with this, Jules. In
>fact, I've already typed in the JCache interfaces and only need to
>commit them to the Geronimo repo (and then work on converting OpenEJB
>2 to use them, of course). This spec will most certainly help out any
>mechanism needing caching.
>
>  
>
Glad to hear we will have a JCache API done - good work.

I have a few provisos about assuming that JCache is THE solution to this 
range of problems and this is the reason why I rejected the JCache API 
on my last redesign of WADI (although I think that the next one will 
have to incorporate it and extend it).

JCache focusses (as far as my understanding goes), simply on the 
location of the state required by a process and not the location of the 
process itself. WADI tries to be neutral in this respect and should be 
equally at home relocating state to process or process to state. e.g. I 
can migrate a session in underneath an incoming request, or 
redirect/proxy a request to the node holding the state (and then 'stick' 
the client to this node so that subsequent requests travel directly to 
the session's location). The latter solution has distinct advantages :

1. Http requests are often much smaller than Http sessions. (the same 
would hold true for an EJB invocation and a SFSB)

2. Many Http requests may run through an HttpSession concurrently, but 
an HttpSession may only be in one place at once. i.e., if a number of 
nodes all receive an http request for the same session it is quicker for 
them to all relocate their requests to the session in question, where 
they may run concurrently, than to relocate the session from request to 
request which may only be done serially. This is not an issue with an 
SFSB (I assume) since only one thread is allowed access to an SFSB at 
any one time anyway (I think?).

3. [de]serialisation is expensive and error prone (may tickle bugs in 
application code). HttpSessions may have activation/passivation 
listeners registered (is there an equivalent for SFSBs?) which could be 
expensive to call. If we can avoid moving a session, it is a good thing.

4. The optimal location for a session is on the same node as its bucket 
owner. If the two can be colocated, notifications about creation, 
relocation and destruction can be run locally instead of remotely. So 
once this colocation is achieved (which it should be from the start, 
since each node can restrict itself to only generating session ids which 
map to buckets of which it is the owner), we want to avoid moving the 
session again, perhaps even if a request for it lands elsewhere.

So, I guess, whilst you have your head in the JCache API and are looking 
at JCache and OpenEJB, these would be very useful facts to consider. 
What is going to be the best way to fit these requirements into an 
architecture that sits around a JCache ? Perhaps we define an additional 
API which allows the relocation of an 'invocation' to a given 
CacheEntry, rather than the other way around. If the JCache instance 
that we are using implements this interface, then we enable the 
request-relocation functionality. Then we will be able to run our stuff 
with other jcache impls (which is bound to be a requirement), or our 
own, in which case you get the extra fn-ality....

Sound like a good idea ?

Jules


>Bruce
>--
>perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
>);'
>
>The Castor Project
>http://www.castor.org/
>
>Apache Geronimo
>http://geronimo.apache.org/
>  
>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Bruce Snyder <br...@gmail.com>.
On 10/15/05, Jules Gosnell <ju...@coredevelopers.net> wrote:
> Jeff Genender wrote:
>
> > Jules,
> >
> > Thanks for the update.  I like whats been done.  Do you think WADI is
> > ready begin becoming a part of Geronimo? (i.e ready for prime time)
>
> I have lots more to do, but I would certainly be interesting in starting
> integration work with Geronimo. I always had Geronimo in mind whilst
> working on WADI, it has just been that, until certification, simply
> implementing specs correctly has been foremost on the G agenda. Now that
> we have reached this goal, the next one becomes enterprise-readiness. I
> hope that WADI can help with this. Would you, or anyone else on the
> list, be interested in taking a look at it and getting involved in the
> integration ?

I'm definitely interested in getting involved with this, Jules. In
fact, I've already typed in the JCache interfaces and only need to
commit them to the Geronimo repo (and then work on converting OpenEJB
2 to use them, of course). This spec will most certainly help out any
mechanism needing caching.

Bruce
--
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

The Castor Project
http://www.castor.org/

Apache Geronimo
http://geronimo.apache.org/

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Jeff Genender wrote:

> Jules,
>
> Thanks for the update.  I like whats been done.  Do you think WADI is 
> ready begin becoming a part of Geronimo? (i.e ready for prime time)

I have lots more to do, but I would certainly be interesting in starting 
integration work with Geronimo. I always had Geronimo in mind whilst 
working on WADI, it has just been that, until certification, simply 
implementing specs correctly has been foremost on the G agenda. Now that 
we have reached this goal, the next one becomes enterprise-readiness. I 
hope that WADI can help with this. Would you, or anyone else on the 
list, be interested in taking a look at it and getting involved in the 
integration ?

Jules

>
> Jeff
>
> Jules Gosnell wrote:
>
>> Jeff Genender wrote:
>>
>>> Now that we have achieved the covetted J2EE Certification, we need 
>>> to start thinking about some of the things we will need to have in 
>>> Geronimo in order to be mass adopted by the Enterprise.
>>>
>>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>>> need by many companies and I believe that until we get a powerful 
>>> clustering solution into G, it will not be taken as a serious J2EE 
>>> contender.
>>>
>>> So, with that said, I wanted to start a discussion thread on 
>>> clustering and what we need to do to get this into Geronimo.  I 
>>> personally would like to be involved in this (thus the reason for me 
>>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>>
>>> I was going over the lists and emails and had some great discussion 
>>> with Jules on the WADI project he has built.  This seems compelling 
>>> to me.  I also noticed Active Cluster as a possibility.
>>>
>>> So lets start from the top.  Do we use an already available 
>>> clusering engine or do we roll our own?  Here is a small list of 
>>> choices I have reviewed and it is by no means complete...
>>>
>>> 1) WADI
>>> 2) Active Cluster
>>> 3) Leverage the Tomcat Clustering engine
>>>
>>> So here are some of my questions...
>>>
>>> How complete is WADI and Active Cluster?  Both look interesting to 
>>> me. My only concern with Active Cluster is it seems to be JMS based, 
>>> which I think may be slow for high performance clustering (am I 
>>> incorrect on this?).  How mature is WADI?
>>
>>
>>
>> Here is a status report on WADI.
>>
>> I'm developing it full time.
>>
>> A snapshot is available at wadi.codehaus.org - documentation is in 
>> the wiki - at the moment the documentation (rather minimalist) is 
>> more up to date than the snapshot, but I will try to get a fresh one 
>> out next week.
>>
>> WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 
>> and Jetty-5.1/60 (it can actually migrate sessions between all four 
>> in the same cluster).
>> It comprises a vertical stack of pluggable caches/stores (memory, 
>> local disc, db etc) through which sessions are demoted as they age 
>> and promoted as and when required to service a request.
>> This stack may be connected horizontally to a cluster by inserting a 
>> clustered store, which uses a distributed hash table (currently 
>> un-replicated, but I am working on it) to share state around the 
>> clusters members in a scalable manner. WADI has a working mod_jk 
>> integration.
>>
>> WADI currently sits on top of ActiveCluster, which it uses for 
>> membership notification and ActiveMQ which is used for transport by 
>> both layers. ActiveMQ has pluggable protocols, including a peer:// 
>> protocol which allows peers to talk directly to one another (this 
>> should put to bed fears of a JMS based solution not scaling - 
>> remember, JMS is just an API). So you do not need to choose between 
>> WADI and ActiveCluster - they are complimentary. ActiveCluster can 
>> also (I believe) use JGroups as a transport - I haven't tried it.
>>
>> ActiveSpace is another technology in this area (distributed caching) 
>> and it looks as if WADI and ActiveSpace will become more closely 
>> aligned. So this may also be considered a complimentary technology.
>>
>> Both Tomcat and Jetty currently have existing clustering solutions. I 
>> looked closely at the Tomcat solutions before starting out on WADI 
>> and knew all about the Jetty solution, because I wrote it :-). WADI 
>> is my answer to what I see as shortcomings in all of the existing 
>> open source approaches to this problem-space.
>>
>> Some parts of WADI should soon (December) be undergoing some serious 
>> testing. When they pass we will be able to consider them production 
>> ready. Others, notably the distributed hash table are still under 
>> development (although a fairly functional version is available in the 
>> SNAPSHOT).
>>
>> I think that, in the same way Tomcat clustering could be enabled 
>> easily in Geronimo, WADI could also be added by virtue of its 
>> integration with Tomcat/Jetty, but I have been concentrating on my 
>> distributed hash table too hard. If anyone is interested in talking 
>> further about WADI, perhaps trying to plug it into Geronimo (It is 
>> spring-wired and uses spring to register its components with JMX. I 
>> guess it should be simple to hook it into the Geronimo kernel in the 
>> same way, I just haven't had the time), or helping out in any way at 
>> all, I would be delighted to hear from them.
>>
>> I have broached the subject of a common session clustering framework 
>> with members of the OpenEJB team and we have discussed things such as 
>> the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
>> moving towards JCache to facilitate the plugging in of a clustering 
>> substrate. My distributed hash table is also moving in the same 
>> direction.
>>
>> I hope that gives you all a little more information to go on. If you 
>> have any questions, just fire away,
>>
>>
>> Jules
>>
>>
>>>
>>> Thoughts and opinions are welcomed.
>>>
>>> Jeff
>>
>>
>>
>>
>>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.
Jules,

Thanks for the update.  I like whats been done.  Do you think WADI is 
ready begin becoming a part of Geronimo? (i.e ready for prime time)

Jeff

Jules Gosnell wrote:
> Jeff Genender wrote:
> 
>> Now that we have achieved the covetted J2EE Certification, we need to 
>> start thinking about some of the things we will need to have in 
>> Geronimo in order to be mass adopted by the Enterprise.
>>
>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>> need by many companies and I believe that until we get a powerful 
>> clustering solution into G, it will not be taken as a serious J2EE 
>> contender.
>>
>> So, with that said, I wanted to start a discussion thread on 
>> clustering and what we need to do to get this into Geronimo.  I 
>> personally would like to be involved in this (thus the reason for me 
>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>
>> I was going over the lists and emails and had some great discussion 
>> with Jules on the WADI project he has built.  This seems compelling to 
>> me.  I also noticed Active Cluster as a possibility.
>>
>> So lets start from the top.  Do we use an already available clusering 
>> engine or do we roll our own?  Here is a small list of choices I have 
>> reviewed and it is by no means complete...
>>
>> 1) WADI
>> 2) Active Cluster
>> 3) Leverage the Tomcat Clustering engine
>>
>> So here are some of my questions...
>>
>> How complete is WADI and Active Cluster?  Both look interesting to me. 
>> My only concern with Active Cluster is it seems to be JMS based, which 
>> I think may be slow for high performance clustering (am I incorrect on 
>> this?).  How mature is WADI?
> 
> 
> Here is a status report on WADI.
> 
> I'm developing it full time.
> 
> A snapshot is available at wadi.codehaus.org - documentation is in the 
> wiki - at the moment the documentation (rather minimalist) is more up to 
> date than the snapshot, but I will try to get a fresh one out next week.
> 
> WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 and 
> Jetty-5.1/60 (it can actually migrate sessions between all four in the 
> same cluster).
> It comprises a vertical stack of pluggable caches/stores (memory, local 
> disc, db etc) through which sessions are demoted as they age and 
> promoted as and when required to service a request.
> This stack may be connected horizontally to a cluster by inserting a 
> clustered store, which uses a distributed hash table (currently 
> un-replicated, but I am working on it) to share state around the 
> clusters members in a scalable manner. WADI has a working mod_jk 
> integration.
> 
> WADI currently sits on top of ActiveCluster, which it uses for 
> membership notification and ActiveMQ which is used for transport by both 
> layers. ActiveMQ has pluggable protocols, including a peer:// protocol 
> which allows peers to talk directly to one another (this should put to 
> bed fears of a JMS based solution not scaling - remember, JMS is just an 
> API). So you do not need to choose between WADI and ActiveCluster - they 
> are complimentary. ActiveCluster can also (I believe) use JGroups as a 
> transport - I haven't tried it.
> 
> ActiveSpace is another technology in this area (distributed caching) and 
> it looks as if WADI and ActiveSpace will become more closely aligned. So 
> this may also be considered a complimentary technology.
> 
> Both Tomcat and Jetty currently have existing clustering solutions. I 
> looked closely at the Tomcat solutions before starting out on WADI and 
> knew all about the Jetty solution, because I wrote it :-). WADI is my 
> answer to what I see as shortcomings in all of the existing open source 
> approaches to this problem-space.
> 
> Some parts of WADI should soon (December) be undergoing some serious 
> testing. When they pass we will be able to consider them production 
> ready. Others, notably the distributed hash table are still under 
> development (although a fairly functional version is available in the 
> SNAPSHOT).
> 
> I think that, in the same way Tomcat clustering could be enabled easily 
> in Geronimo, WADI could also be added by virtue of its integration with 
> Tomcat/Jetty, but I have been concentrating on my distributed hash table 
> too hard. If anyone is interested in talking further about WADI, perhaps 
> trying to plug it into Geronimo (It is spring-wired and uses spring to 
> register its components with JMX. I guess it should be simple to hook it 
> into the Geronimo kernel in the same way, I just haven't had the time), 
> or helping out in any way at all, I would be delighted to hear from them.
> 
> I have broached the subject of a common session clustering framework 
> with members of the OpenEJB team and we have discussed things such as 
> the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
> moving towards JCache to facilitate the plugging in of a clustering 
> substrate. My distributed hash table is also moving in the same direction.
> 
> I hope that gives you all a little more information to go on. If you 
> have any questions, just fire away,
> 
> 
> Jules
> 
> 
>>
>> Thoughts and opinions are welcomed.
>>
>> Jeff
> 
> 
> 
> 

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
Jeff Genender wrote:

> Now that we have achieved the covetted J2EE Certification, we need to 
> start thinking about some of the things we will need to have in 
> Geronimo in order to be mass adopted by the Enterprise.
>
> IMHO, I think one of the huge holes is clustering.  This is a heavy 
> need by many companies and I believe that until we get a powerful 
> clustering solution into G, it will not be taken as a serious J2EE 
> contender.
>
> So, with that said, I wanted to start a discussion thread on 
> clustering and what we need to do to get this into Geronimo.  I 
> personally would like to be involved in this (thus the reason for me 
> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>
> I was going over the lists and emails and had some great discussion 
> with Jules on the WADI project he has built.  This seems compelling to 
> me.  I also noticed Active Cluster as a possibility.
>
> So lets start from the top.  Do we use an already available clusering 
> engine or do we roll our own?  Here is a small list of choices I have 
> reviewed and it is by no means complete...
>
> 1) WADI
> 2) Active Cluster
> 3) Leverage the Tomcat Clustering engine
>
> So here are some of my questions...
>
> How complete is WADI and Active Cluster?  Both look interesting to me. 
> My only concern with Active Cluster is it seems to be JMS based, which 
> I think may be slow for high performance clustering (am I incorrect on 
> this?).  How mature is WADI?

Here is a status report on WADI.

I'm developing it full time.

A snapshot is available at wadi.codehaus.org - documentation is in the 
wiki - at the moment the documentation (rather minimalist) is more up to 
date than the snapshot, but I will try to get a fresh one out next week.

WADI is a plugin HttpSession Manager replacement for Tomcat-5.0/5.5 and 
Jetty-5.1/60 (it can actually migrate sessions between all four in the 
same cluster).
It comprises a vertical stack of pluggable caches/stores (memory, local 
disc, db etc) through which sessions are demoted as they age and 
promoted as and when required to service a request.
This stack may be connected horizontally to a cluster by inserting a 
clustered store, which uses a distributed hash table (currently 
un-replicated, but I am working on it) to share state around the 
clusters members in a scalable manner. WADI has a working mod_jk 
integration.

WADI currently sits on top of ActiveCluster, which it uses for 
membership notification and ActiveMQ which is used for transport by both 
layers. ActiveMQ has pluggable protocols, including a peer:// protocol 
which allows peers to talk directly to one another (this should put to 
bed fears of a JMS based solution not scaling - remember, JMS is just an 
API). So you do not need to choose between WADI and ActiveCluster - they 
are complimentary. ActiveCluster can also (I believe) use JGroups as a 
transport - I haven't tried it.

ActiveSpace is another technology in this area (distributed caching) and 
it looks as if WADI and ActiveSpace will become more closely aligned. So 
this may also be considered a complimentary technology.

Both Tomcat and Jetty currently have existing clustering solutions. I 
looked closely at the Tomcat solutions before starting out on WADI and 
knew all about the Jetty solution, because I wrote it :-). WADI is my 
answer to what I see as shortcomings in all of the existing open source 
approaches to this problem-space.

Some parts of WADI should soon (December) be undergoing some serious 
testing. When they pass we will be able to consider them production 
ready. Others, notably the distributed hash table are still under 
development (although a fairly functional version is available in the 
SNAPSHOT).

I think that, in the same way Tomcat clustering could be enabled easily 
in Geronimo, WADI could also be added by virtue of its integration with 
Tomcat/Jetty, but I have been concentrating on my distributed hash table 
too hard. If anyone is interested in talking further about WADI, perhaps 
trying to plug it into Geronimo (It is spring-wired and uses spring to 
register its components with JMX. I guess it should be simple to hook it 
into the Geronimo kernel in the same way, I just haven't had the time), 
or helping out in any way at all, I would be delighted to hear from them.

I have broached the subject of a common session clustering framework 
with members of the OpenEJB team and we have discussed things such as 
the colocation of HttpSessions and SFSBs. I believe OpenEJB has been 
moving towards JCache to facilitate the plugging in of a clustering 
substrate. My distributed hash table is also moving in the same direction.

I hope that gives you all a little more information to go on. If you 
have any questions, just fire away,


Jules


>
> Thoughts and opinions are welcomed.
>
> Jeff



-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.

Matt Hogstrom wrote:
> Personally, if Tomcat can do clustering today (web based workloads are 
> most common anyway) I'd say we add it.  If the user needs clustering for 
> Web their good to go out of the box.  

+1

Re: Clustering

Posted by Matt Hogstrom <ma...@hogstrom.org>.
Personally, if Tomcat can do clustering today (web based workloads are most 
common anyway) I'd say we add it.  If the user needs clustering for Web their 
good to go out of the box.  I want to play fair against the various packages 
we're pulling in but I think not offering an option because not all packages 
have the same feature isn't playing fair to those that have features today.

- Matt

Jeff Genender wrote:
> 
> 
> Dave Colasurdo wrote:
> 
>> Can we level-set the conversation (in this subthread) by describing 
>> the current clustering options available in Geronimo. It seems that 
>> Tomcat and Jetty already have some level of web tier clustering.  Can 
>> a geronimo user easily leverage this support?
> 
> 
> Speaking from a Tomcat perspective, I just need to add the clustering 
> GBeans and it should be available immediately.  But this only addresses 
> the web tier, which is not good enough.
> 
>>
>> Specifically, Tomcat supports Load Balancing via JK 
>> connector/mod_proxy/balancer, HttpSession failover via 
>> file/database/memory replication, sticky session, etc..
>> Though it seems that some of the configuration/management depends on 
>> tomcat server.xml..  Can geronimo users currently easily leverage this 
>> web tier clustering?
> 
> 
> Yep...again...just a Gbean wrapper.  I could offer up the code in 
> literally a few minutes.  I held off from doing this before we were to 
> choose a direction for our clustering solution.  If you all (community) 
> want this as an interim solution, I can activate Tomcat clustering this 
> weekend.  Just say so - I just need to see some interest.
> 
>>
>> I understand that Tomcat and Jetty provide only Web tier solutions and 
>> don't address EJB, JNDI, JDBC, JMS..  Though just wondering whether 
>> how relevant their web tier solutions are to geronimo.
> 
> 
> Its obviously web only.  I brought up the Tomcat clustering kind of a 
> roll-your-own option.  We could take what is there and build on it to 
> work in the other areas.
> 
>>
>> Also, how does Tangosol Coherence fit in?  Is this an application 
>> level clustering solution?
> 
> 
> Tangasol would fit in nicely, if it were free ;-)  I spoke with Cameron 
> last week at JIA and flat out asked him about the possibility of a 
> donation.  He didn't say no ;-)  He did say he needed to think about it 
> and how it fits his company's business model, of which I have complete 
> respect for.
> 
> Jeff
> 
>>
>> Dave
>>
>>
>>
>> Jeff Genender wrote:
>>
>>> Now that we have achieved the covetted J2EE Certification, we need to 
>>> start thinking about some of the things we will need to have in 
>>> Geronimo in order to be mass adopted by the Enterprise.
>>>
>>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>>> need by many companies and I believe that until we get a powerful 
>>> clustering solution into G, it will not be taken as a serious J2EE 
>>> contender.
>>>
>>> So, with that said, I wanted to start a discussion thread on 
>>> clustering and what we need to do to get this into Geronimo.  I 
>>> personally would like to be involved in this (thus the reason for me 
>>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>>
>>> I was going over the lists and emails and had some great discussion 
>>> with Jules on the WADI project he has built.  This seems compelling 
>>> to me.  I also noticed Active Cluster as a possibility.
>>>
>>> So lets start from the top.  Do we use an already available clusering 
>>> engine or do we roll our own?  Here is a small list of choices I have 
>>> reviewed and it is by no means complete...
>>>
>>> 1) WADI
>>> 2) Active Cluster
>>> 3) Leverage the Tomcat Clustering engine
>>>
>>> So here are some of my questions...
>>>
>>> How complete is WADI and Active Cluster?  Both look interesting to 
>>> me. My only concern with Active Cluster is it seems to be JMS based, 
>>> which I think may be slow for high performance clustering (am I 
>>> incorrect on this?).  How mature is WADI?
>>>
>>> Thoughts and opinions are welcomed.
>>>
>>> Jeff
>>>
>>>
> 


Re: Clustering

Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On Oct 14, 2005, at 4:01 PM, 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.

Right - our JMS already clusters, doesn't it, by virtue of it being  
ActiveMQ.  Maybe we just need config and docs for that...?  A console  
plugin?

As for caching, if you mean a la Tangosol, yes, that would be very  
cool in the app layer, and something like that needed for the EJB  
container?

geir


-- 
Geir Magnusson Jr                                  +1-203-665-6437
geirm@apache.org



Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.
Nice!  Keep it coming Dave!

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))
> 
> Heartbeat/Health Check
> 
> 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??
> 
> JNDI clustering
> -Shared global JNDI Tree OR
> -Independent JNDI OR
> -Centralized JNDI (on single server)
> 
> Web Service Clustering
> JDBC Clustering
> JMS Clustering
> 
> 
> Management Capability
> -Adding to a cluster
>  -Manual addition
>  -Automatic discovery
> -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
> 
> -Dave-

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
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.


Jules

> -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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.
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))

Heartbeat/Health Check

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??

JNDI clustering
-Shared global JNDI Tree OR
-Independent JNDI OR
-Centralized JNDI (on single server)

Web Service Clustering
JDBC Clustering
JMS Clustering


Management Capability
-Adding to a cluster
  -Manual addition
  -Automatic discovery
-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

-Dave-

Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.

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.

> 
> geir
> 

Re: Clustering

Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On Oct 14, 2005, at 2:40 PM, Jeff Genender wrote:

>
>
> Geir Magnusson Jr. wrote:
>
>
>>>
>>> Speaking from a Tomcat perspective, I just need to add the   
>>> clustering GBeans and it should be available immediately.  But  
>>> this  only addresses the web tier, which is not good enough.
>>>
>>>
>> It's great - are you kidding? :)
>>
>
> I know...but I didn't want to implement it as a half-way clustering  
> deal.  Its great but not what we need at the end of the day.

What %age of users will be able to take advantage of this?  90%? :)

What other ways are you thinking of clustering?

geir

-- 
Geir Magnusson Jr                                  +1-203-665-6437
geirm@apache.org



Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
The cluster module in the repo is out of date.

Conversation about clustering is going on on geronimo-dev.

With my Geronimo hat on:

We hope to start providing some form of clustering fn-ality by the G-1.0 
release. This will probably initially be web-only, although the OpenEjb 
team are involved in discussions about what we can do with EJB.

With my WADI (http://wadi.codehaus.org) hat on:

We hope to get a WADI technology preview release into G-1.0. This will 
provide some form of HttpSession clustering. We hope that OpenEJB SFSBs 
will soon be able to reuse WADI infrastructure to become distributable 
as well. WADI uses a distributed hash table (Sessions are stored in a 
logical Map. The Map would be too large for a single node to hold, so, 
physically, the buckets of this Map are held on different nodes. Each 
node knows who owns each bucket and in this way can ensure that requests 
and sessions meet somewhere within the cluster to maintain proper 
service.). For more info see http://wadi.codehaus.org or jump on our 
user list and ask questions.

cheers,

Jules


Arun Venugopal wrote:

> Hi,
>
> I am doing a comparison study of different application servers. I saw 
> one module on clustering in the source code. I would like to know if 
> that code is functional or if it is meant simply as an API. Also if it 
> is functional, then how can i test it ?
>
> Thanks and regards
> Arun
> This e-mail and any files transmitted with it are for the sole use of 
> the intended recipient(s) and may contain confidential and privileged 
> information.
> If you are not the intended recipient, please contact the sender by 
> reply e-mail and destroy all copies of the original message.
> Any unauthorized review, use, disclosure, dissemination, forwarding, 
> printing or copying of this email or any action taken in reliance on 
> this e-mail is strictly
> prohibited and may be unlawful.
>
> Visit us at http://www.cognizant.com
>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Clustering

Posted by Arun Venugopal <Ar...@cognizant.com>.
Hi,

I am doing a comparison study of different application servers. I saw
one module on clustering in the source code. I would like to know if
that code is functional or if it is meant simply as an API. Also if it
is functional, then how can i test it ? 

Thanks and regards
Arun


This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. 
Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly 
prohibited and may be unlawful.

  Visit us at http://www.cognizant.com

Re: Clustering

Posted by Jules Gosnell <ju...@coredevelopers.net>.
comments inline...

Jeff Genender wrote:

>
>
> Dave Colasurdo wrote:
>
>>
>>
>> Jeff Genender wrote:
>>
>>>
>>>
>>> Dave Colasurdo wrote:
>>>
>>>> I'm still trying to understand the current web-tier clustering 
>>>> support available in geronimo.
>>>>
>>>> Have the clustering GBeans been added for the Tomcat container?
>>>
>>>
>>>
>>>
>>> I have them fully coded.  I just need to test them and check them in.
>>>
>>
>> Thanks... Please keep us posted on progress.  Am eager to test this 
>> out..
>
>
> I am on it...
>
>>
>>>>
>>>> Any setup documentation available for testing G web-tier clustering 
>>>> using Tomcat?
>>>
>>>
>>>
>>>
>>> Not at the moment.  Would you be interested in helping out with 
>>> getting info on the wiki after I check this in?
>>>
>> Yep, can help out here..
>>
>> BTW, I think the whole G Wiki needs a facelift.. I'm also hoping 
>> Hernan can help out here.
>
>
> +1000!!! This would be most excellent.
>
>>
>>
>>>>
>>>> What is the G web-tier clustering story related to Jetty?  Any 
>>>> setup documentation available?
>>>
>>>
>>>
>>>
>>> We are actually talking about using WADI (wadi.codehaus.org) to do 
>>> this.  This way Jetty and Tomcat can share the web tier in a 
>>> cluster.  This is primarily why I have held off checking in the 
>>> Tomcat clustering.
>>>
>> Does this mean that a single cluster can consist of both G Jetty and 
>> G Tomcat cluster members?  Hmmm..  I usually think of cluster members 
>> as identical clones.  Or are you saying that both Jetty and Tomcat 
>> would share the same WADI mechanism for clustering though not support 
>> a heterogeneous set of web containers across servers?
>
>
> I'll let Jules comment on this.  But yes, IIUC, the cluster 
> theoretically should be able to have both Jetty and Tomcat members.  
> The clustering is really only the HTTPSession, so in theory this 
> should not be an issue.  Jules, care to comment here?

Jeff is right.

WADI has an integration layer which bridges between wadi-core, jetty5, 
jetty6, tomcat50 and tomcat55, below this layer all components are 
identical, no matter which container you are running in. So, if you 
chose, you could mix all 4 containers within a cluster. In reality, I 
expect that this will not be the case, as people will only want to 
production-test and support a single container, but it still gives us 
the significant advantage, in an environment with multiple web-container 
choices, that a WADI configuration should be portable between all 4 
containers and we only have to maintain a single codebase (core) with a 
number of thin integration layers.

In fact it should be possible to run WADI all the way down and so mix 
standalone Jettys, Tomcats and even (heaven forbid) JB*ss-Jetty's and 
JB*ss-Tomcat's into your Geronimo web-cluster, if that is your thing (we 
have a JB*ss integration in testing). Of course, when you throw EJBs 
into this equation, things get more complicated - we are in talks with 
the OpenEJB team about how we can all use the same technology to manage 
our (stateful) sessions.

So, the answer to your question is - "both - and more".

Hope that helps,


Jules

>
>>
>>
>>>>
>>>> Has anyone tested Tangosol Coherence with G?  Any setup 
>>>> documentation available?
>>>>
>>>> Thanks
>>>> -Dave-
>>>>
>>>>
>>>> Jeff Genender wrote:
>>>>
>>>>>
>>>>>
>>>>> Geir Magnusson Jr. wrote:
>>>>>
>>>>>>>
>>>>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>>>>> clustering GBeans and it should be available immediately.  But 
>>>>>>> this  only addresses the web tier, which is not good enough.
>>>>>>>
>>>>>>
>>>>>> It's great - are you kidding? :)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I know...but I didn't want to implement it as a half-way 
>>>>> clustering deal.  Its great but not what we need at the end of the 
>>>>> day.  In any case...the community wants it, so the community shall 
>>>>> have it.  I am working on it now.
>>>>>
>>>>> Jeff
>>>>>
>>>>>
>>>
>>>


-- 
"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)
 *
 *    www.coredevelopers.net
 *
 * Open Source Training & Support.
 **********************************/


Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.
Ok...when I wake up from my dream...

Surely I must be dreaming...we are getting people lining up to help on 
the doc??

I need to pinch myself!

;-)

Thanks so much for stepping up to help with this.

Jeff

Hernan Cunico wrote:
> Hi guys,
> Apache wiki definitively needs some reorganization, better structure and 
> higher flexibility for formating.
> 
> I have been working some articles in confluence which has better 
> formating and way much easier than Apache wiki.
> 
> It would be really cool if we can continue to submit documentation in 
> confluence and, eventually, turn confluence into the default (and 
> totally renewed) G wiki.
> 
> Dave & Jeff, pls let me know how can I help.
> 
> Cheers!
> Hernan
> 
> 
> Jeff Genender wrote:
> 
>>
>>
>> Dave Colasurdo wrote:
>>
>>>
>>>
>>> Jeff Genender wrote:
>>>
>>>>
>>>>
>>>> Dave Colasurdo wrote:
>>>>
>>>>> I'm still trying to understand the current web-tier clustering 
>>>>> support available in geronimo.
>>>>>
>>>>> Have the clustering GBeans been added for the Tomcat container?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I have them fully coded.  I just need to test them and check them in.
>>>>
>>>
>>> Thanks... Please keep us posted on progress.  Am eager to test this 
>>> out..
>>
>>
>>
>> I am on it...
>>
>>>
>>>>>
>>>>> Any setup documentation available for testing G web-tier clustering 
>>>>> using Tomcat?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Not at the moment.  Would you be interested in helping out with 
>>>> getting info on the wiki after I check this in?
>>>>
>>> Yep, can help out here..
>>>
>>> BTW, I think the whole G Wiki needs a facelift.. I'm also hoping 
>>> Hernan can help out here.
>>
>>
>>
>> +1000!!! This would be most excellent.
> 
> 
> 
>>
>>>
>>>
>>>>>
>>>>> What is the G web-tier clustering story related to Jetty?  Any 
>>>>> setup documentation available?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> We are actually talking about using WADI (wadi.codehaus.org) to do 
>>>> this.  This way Jetty and Tomcat can share the web tier in a 
>>>> cluster.  This is primarily why I have held off checking in the 
>>>> Tomcat clustering.
>>>>
>>> Does this mean that a single cluster can consist of both G Jetty and 
>>> G Tomcat cluster members?  Hmmm..  I usually think of cluster members 
>>> as identical clones.  Or are you saying that both Jetty and Tomcat 
>>> would share the same WADI mechanism for clustering though not support 
>>> a heterogeneous set of web containers across servers?
>>
>>
>>
>> I'll let Jules comment on this.  But yes, IIUC, the cluster 
>> theoretically should be able to have both Jetty and Tomcat members.  
>> The clustering is really only the HTTPSession, so in theory this 
>> should not be an issue.  Jules, care to comment here?
>>
>>>
>>>
>>>>>
>>>>> Has anyone tested Tangosol Coherence with G?  Any setup 
>>>>> documentation available?
>>>>>
>>>>> Thanks
>>>>> -Dave-
>>>>>
>>>>>
>>>>> Jeff Genender wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Geir Magnusson Jr. wrote:
>>>>>>
>>>>>>>>
>>>>>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>>>>>> clustering GBeans and it should be available immediately.  But 
>>>>>>>> this  only addresses the web tier, which is not good enough.
>>>>>>>>
>>>>>>>
>>>>>>> It's great - are you kidding? :)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> I know...but I didn't want to implement it as a half-way 
>>>>>> clustering deal.  Its great but not what we need at the end of the 
>>>>>> day.  In any case...the community wants it, so the community shall 
>>>>>> have it.  I am working on it now.
>>>>>>
>>>>>> Jeff
>>>>>>
>>>>>>
>>>>
>>>>
>>

Re: Clustering

Posted by Dain Sundstrom <da...@iq80.com>.
On Oct 27, 2005, at 2:23 PM, Rodent of Unusual Size wrote:

> Hernan Cunico wrote:
>
>> I have been working some articles in confluence which has better
>> formating and way much easier than Apache wiki.
>>
>> It would be really cool if we can continue to submit documentation in
>> confluence and, eventually, turn confluence into the default (and
>> totally renewed) G wiki.
>
> Can the information be easily extracted into a readable
> or parseable form?  Documentation that you have to be on
> the net to read has problems over docco that is/can be
> bundled into a tarball or with the package itself..

Individual pages can be converted to PDF by clicking on the PDF icon  
in the upper right corner of the page.  For example

   http://opensource2.atlassian.com/confluence/oss/pages/ 
viewpage.action?pageId=1007

   http://opensource2.atlassian.com/confluence/oss/pages/ 
doexportpage.action?pageId=1007&type=TYPE_PDF

Also the entire site or portions of the site can be exported here  
(you need a account for this):

   http://opensource2.atlassian.com/confluence/oss/spaces/ 
exportspace.action?key=GERONIMO


-dain

Re: Clustering

Posted by Rodent of Unusual Size <Ke...@Golux.Com>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hernan Cunico wrote:
> 
> I have been working some articles in confluence which has better
> formating and way much easier than Apache wiki.
> 
> It would be really cool if we can continue to submit documentation in
> confluence and, eventually, turn confluence into the default (and
> totally renewed) G wiki.

Can the information be easily extracted into a readable
or parseable form?  Documentation that you have to be on
the net to read has problems over docco that is/can be
bundled into a tarball or with the package itself..
- --
#ken	P-)}

Ken Coar, Sanagendamgagwedweinini  http://Ken.Coar.Org/
Author, developer, opinionist      http://Apache-Server.Com/

"Millennium hand and shrimp!"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQCVAwUBQ2FFNprNPMCpn3XdAQJhDAP/TrjP8jWPbfChrcl+dC+S4GB82Nb6SLKc
6i9iQjlcon2tjWGZAyoGIaJq63ABFIYE8F0wwBrMlw1MnNvAB12K42EbN8HksVco
7RvaCVpOAHu/tYzmSb16K/qaY7tfK46zyK1lUIC/AeF5oGqDLed6Vx8hEpAahaG2
chx7sajL7x0=
=PMju
-----END PGP SIGNATURE-----

Re: Clustering

Posted by Hernan Cunico <hc...@gmail.com>.
Hi guys,
Apache wiki definitively needs some reorganization, better structure and 
higher flexibility for formating.

I have been working some articles in confluence which has better 
formating and way much easier than Apache wiki.

It would be really cool if we can continue to submit documentation in 
confluence and, eventually, turn confluence into the default (and 
totally renewed) G wiki.

Dave & Jeff, pls let me know how can I help.

Cheers!
Hernan


Jeff Genender wrote:
> 
> 
> Dave Colasurdo wrote:
> 
>>
>>
>> Jeff Genender wrote:
>>
>>>
>>>
>>> Dave Colasurdo wrote:
>>>
>>>> I'm still trying to understand the current web-tier clustering 
>>>> support available in geronimo.
>>>>
>>>> Have the clustering GBeans been added for the Tomcat container?
>>>
>>>
>>>
>>>
>>> I have them fully coded.  I just need to test them and check them in.
>>>
>>
>> Thanks... Please keep us posted on progress.  Am eager to test this out..
> 
> 
> I am on it...
> 
>>
>>>>
>>>> Any setup documentation available for testing G web-tier clustering 
>>>> using Tomcat?
>>>
>>>
>>>
>>>
>>> Not at the moment.  Would you be interested in helping out with 
>>> getting info on the wiki after I check this in?
>>>
>> Yep, can help out here..
>>
>> BTW, I think the whole G Wiki needs a facelift.. I'm also hoping 
>> Hernan can help out here.
> 
> 
> +1000!!! This would be most excellent.


> 
>>
>>
>>>>
>>>> What is the G web-tier clustering story related to Jetty?  Any setup 
>>>> documentation available?
>>>
>>>
>>>
>>>
>>> We are actually talking about using WADI (wadi.codehaus.org) to do 
>>> this.  This way Jetty and Tomcat can share the web tier in a 
>>> cluster.  This is primarily why I have held off checking in the 
>>> Tomcat clustering.
>>>
>> Does this mean that a single cluster can consist of both G Jetty and G 
>> Tomcat cluster members?  Hmmm..  I usually think of cluster members as 
>> identical clones.  Or are you saying that both Jetty and Tomcat would 
>> share the same WADI mechanism for clustering though not support a 
>> heterogeneous set of web containers across servers?
> 
> 
> I'll let Jules comment on this.  But yes, IIUC, the cluster 
> theoretically should be able to have both Jetty and Tomcat members.  The 
> clustering is really only the HTTPSession, so in theory this should not 
> be an issue.  Jules, care to comment here?
> 
>>
>>
>>>>
>>>> Has anyone tested Tangosol Coherence with G?  Any setup 
>>>> documentation available?
>>>>
>>>> Thanks
>>>> -Dave-
>>>>
>>>>
>>>> Jeff Genender wrote:
>>>>
>>>>>
>>>>>
>>>>> Geir Magnusson Jr. wrote:
>>>>>
>>>>>>>
>>>>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>>>>> clustering GBeans and it should be available immediately.  But 
>>>>>>> this  only addresses the web tier, which is not good enough.
>>>>>>>
>>>>>>
>>>>>> It's great - are you kidding? :)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I know...but I didn't want to implement it as a half-way clustering 
>>>>> deal.  Its great but not what we need at the end of the day.  In 
>>>>> any case...the community wants it, so the community shall have it.  
>>>>> I am working on it now.
>>>>>
>>>>> Jeff
>>>>>
>>>>>
>>>
>>>
> 

Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.

Dave Colasurdo wrote:
> 
> 
> Jeff Genender wrote:
> 
>>
>>
>> Dave Colasurdo wrote:
>>
>>> I'm still trying to understand the current web-tier clustering 
>>> support available in geronimo.
>>>
>>> Have the clustering GBeans been added for the Tomcat container?
>>
>>
>>
>> I have them fully coded.  I just need to test them and check them in.
>>
> 
> Thanks... Please keep us posted on progress.  Am eager to test this out..

I am on it...

> 
>>>
>>> Any setup documentation available for testing G web-tier clustering 
>>> using Tomcat?
>>
>>
>>
>> Not at the moment.  Would you be interested in helping out with 
>> getting info on the wiki after I check this in?
>>
> Yep, can help out here..
> 
> BTW, I think the whole G Wiki needs a facelift.. I'm also hoping Hernan 
> can help out here.

+1000!!! This would be most excellent.

> 
> 
>>>
>>> What is the G web-tier clustering story related to Jetty?  Any setup 
>>> documentation available?
>>
>>
>>
>> We are actually talking about using WADI (wadi.codehaus.org) to do 
>> this.  This way Jetty and Tomcat can share the web tier in a cluster.  
>> This is primarily why I have held off checking in the Tomcat clustering.
>>
> Does this mean that a single cluster can consist of both G Jetty and G 
> Tomcat cluster members?  Hmmm..  I usually think of cluster members as 
> identical clones.  Or are you saying that both Jetty and Tomcat would 
> share the same WADI mechanism for clustering though not support a 
> heterogeneous set of web containers across servers?

I'll let Jules comment on this.  But yes, IIUC, the cluster 
theoretically should be able to have both Jetty and Tomcat members.  The 
clustering is really only the HTTPSession, so in theory this should not 
be an issue.  Jules, care to comment here?

> 
> 
>>>
>>> Has anyone tested Tangosol Coherence with G?  Any setup documentation 
>>> available?
>>>
>>> Thanks
>>> -Dave-
>>>
>>>
>>> Jeff Genender wrote:
>>>
>>>>
>>>>
>>>> Geir Magnusson Jr. wrote:
>>>>
>>>>>>
>>>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>>>> clustering GBeans and it should be available immediately.  But 
>>>>>> this  only addresses the web tier, which is not good enough.
>>>>>>
>>>>>
>>>>> It's great - are you kidding? :)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> I know...but I didn't want to implement it as a half-way clustering 
>>>> deal.  Its great but not what we need at the end of the day.  In any 
>>>> case...the community wants it, so the community shall have it.  I am 
>>>> working on it now.
>>>>
>>>> Jeff
>>>>
>>>>
>>
>>

Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.

Jeff Genender wrote:
> 
> 
> Dave Colasurdo wrote:
> 
>> I'm still trying to understand the current web-tier clustering support 
>> available in geronimo.
>>
>> Have the clustering GBeans been added for the Tomcat container?
> 
> 
> I have them fully coded.  I just need to test them and check them in.
> 

Thanks... Please keep us posted on progress.  Am eager to test this out..

>>
>> Any setup documentation available for testing G web-tier clustering 
>> using Tomcat?
> 
> 
> Not at the moment.  Would you be interested in helping out with getting 
> info on the wiki after I check this in?
> 
Yep, can help out here..

BTW, I think the whole G Wiki needs a facelift.. I'm also hoping Hernan 
can help out here.


>>
>> What is the G web-tier clustering story related to Jetty?  Any setup 
>> documentation available?
> 
> 
> We are actually talking about using WADI (wadi.codehaus.org) to do this. 
>  This way Jetty and Tomcat can share the web tier in a cluster.  This is 
> primarily why I have held off checking in the Tomcat clustering.
> 
Does this mean that a single cluster can consist of both G Jetty and G 
Tomcat cluster members?  Hmmm..  I usually think of cluster members as 
identical clones.  Or are you saying that both Jetty and Tomcat would 
share the same WADI mechanism for clustering though not support a 
heterogeneous set of web containers across servers?


>>
>> Has anyone tested Tangosol Coherence with G?  Any setup documentation 
>> available?
>>
>> Thanks
>> -Dave-
>>
>>
>> Jeff Genender wrote:
>>
>>>
>>>
>>> Geir Magnusson Jr. wrote:
>>>
>>>>>
>>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>>> clustering GBeans and it should be available immediately.  But 
>>>>> this  only addresses the web tier, which is not good enough.
>>>>>
>>>>
>>>> It's great - are you kidding? :)
>>>
>>>
>>>
>>>
>>> I know...but I didn't want to implement it as a half-way clustering 
>>> deal.  Its great but not what we need at the end of the day.  In any 
>>> case...the community wants it, so the community shall have it.  I am 
>>> working on it now.
>>>
>>> Jeff
>>>
>>>
> 
> 

Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.

Dave Colasurdo wrote:
> I'm still trying to understand the current web-tier clustering support 
> available in geronimo.
> 
> Have the clustering GBeans been added for the Tomcat container?

I have them fully coded.  I just need to test them and check them in.

> 
> Any setup documentation available for testing G web-tier clustering 
> using Tomcat?

Not at the moment.  Would you be interested in helping out with getting 
info on the wiki after I check this in?

> 
> What is the G web-tier clustering story related to Jetty?  Any setup 
> documentation available?

We are actually talking about using WADI (wadi.codehaus.org) to do this. 
  This way Jetty and Tomcat can share the web tier in a cluster.  This 
is primarily why I have held off checking in the Tomcat clustering.

> 
> Has anyone tested Tangosol Coherence with G?  Any setup documentation 
> available?
> 
> Thanks
> -Dave-
> 
> 
> Jeff Genender wrote:
> 
>>
>>
>> Geir Magnusson Jr. wrote:
>>
>>>>
>>>> Speaking from a Tomcat perspective, I just need to add the  
>>>> clustering GBeans and it should be available immediately.  But this  
>>>> only addresses the web tier, which is not good enough.
>>>>
>>>
>>> It's great - are you kidding? :)
>>
>>
>>
>> I know...but I didn't want to implement it as a half-way clustering 
>> deal.  Its great but not what we need at the end of the day.  In any 
>> case...the community wants it, so the community shall have it.  I am 
>> working on it now.
>>
>> Jeff
>>
>>

Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.
I'm still trying to understand the current web-tier clustering support 
available in geronimo.

Have the clustering GBeans been added for the Tomcat container?

Any setup documentation available for testing G web-tier clustering 
using Tomcat?

What is the G web-tier clustering story related to Jetty?  Any setup 
documentation available?

Has anyone tested Tangosol Coherence with G?  Any setup documentation 
available?

Thanks
-Dave-


Jeff Genender wrote:
> 
> 
> Geir Magnusson Jr. wrote:
> 
>>>
>>> Speaking from a Tomcat perspective, I just need to add the  
>>> clustering GBeans and it should be available immediately.  But this  
>>> only addresses the web tier, which is not good enough.
>>>
>>
>> It's great - are you kidding? :)
> 
> 
> I know...but I didn't want to implement it as a half-way clustering 
> deal.  Its great but not what we need at the end of the day.  In any 
> case...the community wants it, so the community shall have it.  I am 
> working on it now.
> 
> Jeff
> 
> 

Re: Clustering

Posted by Jeff Genender <jg...@savoirtech.com>.

Geir Magnusson Jr. wrote:

>>
>> Speaking from a Tomcat perspective, I just need to add the  clustering 
>> GBeans and it should be available immediately.  But this  only 
>> addresses the web tier, which is not good enough.
>>
> 
> It's great - are you kidding? :)

I know...but I didn't want to implement it as a half-way clustering 
deal.  Its great but not what we need at the end of the day.  In any 
case...the community wants it, so the community shall have it.  I am 
working on it now.

Jeff

Re: Clustering

Posted by "Geir Magnusson Jr." <ge...@apache.org>.
On Oct 14, 2005, at 10:03 AM, Jeff Genender wrote:

>
>
> Dave Colasurdo wrote:
>
>> Can we level-set the conversation (in this subthread) by  
>> describing the current clustering options available in Geronimo.  
>> It seems that Tomcat and Jetty already have some level of web tier  
>> clustering.  Can a geronimo user easily leverage this support?
>>
>
> Speaking from a Tomcat perspective, I just need to add the  
> clustering GBeans and it should be available immediately.  But this  
> only addresses the web tier, which is not good enough.
>

It's great - are you kidding? :)

I think if we approached clustering based on need, primary would be  
webtier...  we'd get a lot of bang for that buck...


>
>> Specifically, Tomcat supports Load Balancing via JK connector/ 
>> mod_proxy/balancer, HttpSession failover via file/database/memory  
>> replication, sticky session, etc..
>> Though it seems that some of the configuration/management depends  
>> on tomcat server.xml..  Can geronimo users currently easily  
>> leverage this web tier clustering?
>>
>
> Yep...again...just a Gbean wrapper.  I could offer up the code in  
> literally a few minutes.  I held off from doing this before we were  
> to choose a direction for our clustering solution.  If you all  
> (community) want this as an interim solution, I can activate Tomcat  
> clustering this weekend.  Just say so - I just need to see some  
> interest.
>
>
>> I understand that Tomcat and Jetty provide only Web tier solutions  
>> and don't address EJB, JNDI, JDBC, JMS..  Though just wondering  
>> whether how relevant their web tier solutions are to geronimo.
>>
>
> Its obviously web only.  I brought up the Tomcat clustering kind of  
> a roll-your-own option.  We could take what is there and build on  
> it to work in the other areas.
>
>
>> Also, how does Tangosol Coherence fit in?  Is this an application  
>> level clustering solution?
>>
>
> Tangasol would fit in nicely, if it were free ;-)  I spoke with  
> Cameron last week at JIA and flat out asked him about the  
> possibility of a donation.  He didn't say no ;-)  He did say he  
> needed to think about it and how it fits his company's business  
> model, of which I have complete respect for.
>
> Jeff
>
>
>> Dave
>> Jeff Genender wrote:
>>
>>> Now that we have achieved the covetted J2EE Certification, we  
>>> need to start thinking about some of the things we will need to  
>>> have in Geronimo in order to be mass adopted by the Enterprise.
>>>
>>> IMHO, I think one of the huge holes is clustering.  This is a  
>>> heavy need by many companies and I believe that until we get a  
>>> powerful clustering solution into G, it will not be taken as a  
>>> serious J2EE contender.
>>>
>>> So, with that said, I wanted to start a discussion thread on  
>>> clustering and what we need to do to get this into Geronimo.  I  
>>> personally would like to be involved in this (thus the reason for  
>>> me starting this thread) - yeah, since Tomcat is done, now I am  
>>> bored ;-).
>>>
>>> I was going over the lists and emails and had some great  
>>> discussion with Jules on the WADI project he has built.  This  
>>> seems compelling to me.  I also noticed Active Cluster as a  
>>> possibility.
>>>
>>> So lets start from the top.  Do we use an already available  
>>> clusering engine or do we roll our own?  Here is a small list of  
>>> choices I have reviewed and it is by no means complete...
>>>
>>> 1) WADI
>>> 2) Active Cluster
>>> 3) Leverage the Tomcat Clustering engine
>>>
>>> So here are some of my questions...
>>>
>>> How complete is WADI and Active Cluster?  Both look interesting  
>>> to me. My only concern with Active Cluster is it seems to be JMS  
>>> based, which I think may be slow for high performance clustering  
>>> (am I incorrect on this?).  How mature is WADI?
>>>
>>> Thoughts and opinions are welcomed.
>>>
>>> Jeff
>>>
>>>
>>>
>
> -- 
> Jeff Genender
> http://geronimo.apache.org
>
>

-- 
Geir Magnusson Jr                                  +1-203-665-6437
geirm@apache.org



Re: Clustering

Posted by Jeff Genender <jg...@apache.org>.

Dave Colasurdo wrote:
> Can we level-set the conversation (in this subthread) by describing the 
> current clustering options available in Geronimo. 
> It seems that Tomcat 
> and Jetty already have some level of web tier clustering.  Can a 
> geronimo user easily leverage this support?

Speaking from a Tomcat perspective, I just need to add the clustering 
GBeans and it should be available immediately.  But this only addresses 
the web tier, which is not good enough.

> 
> Specifically, Tomcat supports Load Balancing via JK 
> connector/mod_proxy/balancer, HttpSession failover via 
> file/database/memory replication, sticky session, etc..
> Though it seems that some of the configuration/management depends on 
> tomcat server.xml..  Can geronimo users currently easily leverage this 
> web tier clustering?

Yep...again...just a Gbean wrapper.  I could offer up the code in 
literally a few minutes.  I held off from doing this before we were to 
choose a direction for our clustering solution.  If you all (community) 
want this as an interim solution, I can activate Tomcat clustering this 
weekend.  Just say so - I just need to see some interest.

> 
> I understand that Tomcat and Jetty provide only Web tier solutions and 
> don't address EJB, JNDI, JDBC, JMS..  Though just wondering whether how 
> relevant their web tier solutions are to geronimo.

Its obviously web only.  I brought up the Tomcat clustering kind of a 
roll-your-own option.  We could take what is there and build on it to 
work in the other areas.

> 
> Also, how does Tangosol Coherence fit in?  Is this an application level 
> clustering solution?

Tangasol would fit in nicely, if it were free ;-)  I spoke with Cameron 
last week at JIA and flat out asked him about the possibility of a 
donation.  He didn't say no ;-)  He did say he needed to think about it 
and how it fits his company's business model, of which I have complete 
respect for.

Jeff

> 
> Dave
> 
> 
> 
> Jeff Genender wrote:
> 
>> Now that we have achieved the covetted J2EE Certification, we need to 
>> start thinking about some of the things we will need to have in 
>> Geronimo in order to be mass adopted by the Enterprise.
>>
>> IMHO, I think one of the huge holes is clustering.  This is a heavy 
>> need by many companies and I believe that until we get a powerful 
>> clustering solution into G, it will not be taken as a serious J2EE 
>> contender.
>>
>> So, with that said, I wanted to start a discussion thread on 
>> clustering and what we need to do to get this into Geronimo.  I 
>> personally would like to be involved in this (thus the reason for me 
>> starting this thread) - yeah, since Tomcat is done, now I am bored ;-).
>>
>> I was going over the lists and emails and had some great discussion 
>> with Jules on the WADI project he has built.  This seems compelling to 
>> me.  I also noticed Active Cluster as a possibility.
>>
>> So lets start from the top.  Do we use an already available clusering 
>> engine or do we roll our own?  Here is a small list of choices I have 
>> reviewed and it is by no means complete...
>>
>> 1) WADI
>> 2) Active Cluster
>> 3) Leverage the Tomcat Clustering engine
>>
>> So here are some of my questions...
>>
>> How complete is WADI and Active Cluster?  Both look interesting to me. 
>> My only concern with Active Cluster is it seems to be JMS based, which 
>> I think may be slow for high performance clustering (am I incorrect on 
>> this?).  How mature is WADI?
>>
>> Thoughts and opinions are welcomed.
>>
>> Jeff
>>
>>

-- 
Jeff Genender
http://geronimo.apache.org


Re: openejb build problem caused by ConfigurationUtil change?

Posted by Jeff Genender <jg...@savoirtech.com>.
Can we get the interim fix in for this for now?  I am S.O.L. on the 
build and need it to continue with some of my development.

Thanks,

Jeff

David Jencks wrote:
> oops
> 
> I'm hoping to have a more complete fix for the problems introduced by  
> the new principal wrapping ready very shortly.  If I run into problems  
> I'll try to fix just this error.
> 
> thanks
> david jencks
> 
> On Oct 14, 2005, at 6:09 AM, Rick McGuire wrote:
> 
>> With a fresh checkout this morning I'm getting the following compile  
>> error:
>>
>> default:
>> java:prepare-filesystem:
>>    [mkdir] Created dir:  
>> C:\Geronimo\geronimo\openejb\modules\core\target\classe
>> s
>>
>> java:compile:
>>    [depend] Deleted 0 out of date files in 0 seconds
>>    [echo] Compiling to  
>> C:\Geronimo\geronimo\openejb\modules\core/target/classes
>>
>>    [javac] Compiling 606 source files to  
>> C:\Geronimo\geronimo\openejb\modules\c
>> ore\target\classes
>> C: 
>> \Geronimo\geronimo\openejb\modules\core\src\java\org\openejb\corba\secu 
>> rity\Se
>> curityInitializer.java:145: cannot resolve symbol
>> symbol  : method generateRealmPrincipal  
>> (java.lang.String,java.lang.String,java.
>> lang.String)
>> location: class org.apache.geronimo.security.util.ConfigurationUtil
>>        RealmPrincipal realmPrincipal =  
>> ConfigurationUtil.generateRealmPrincipal
>> (className, principalName, realm);
>>                                                         ^
>> Note: Some input files use or override a deprecated API.
>> Note: Recompile with -deprecation for details.
>> 1 error
>>
>> BUILD FAILED
>> File...... C:\Documents and  
>> Settings\Administrator\.maven\cache\maven-multiproje
>> ct-plugin-1.3.1\plugin.jelly
>> Element... maven:reactor
>> Line...... 217
>> Column.... 9
>> Unable to obtain goal [default] -- C:\Documents and  
>> Settings\Administrator\.mave
>> n\cache\maven-java-plugin-1.5\plugin.jelly:63:48: <ant:javac> Compile  
>> failed; se
>> e the compiler error output for details.
>> Total time: 15 minutes 7 seconds
>> Finished at: Fri Oct 14 09:01:05 EDT 2005
>>
>> It appears the generateRealmPrincipal() now takes 4 arguments, but 
>> the  openejb code was not changed to match.  Was this just a missed 
>> commit  on the update?
>>
>> Rick
>>

Re: openejb build problem caused by ConfigurationUtil change?

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
David,

I'm already half into the configuration/builder for the new wrapped 
principals.


Regards,
Alan

David Jencks wrote, On 10/14/2005 8:47 AM:

> oops
>
> I'm hoping to have a more complete fix for the problems introduced by  
> the new principal wrapping ready very shortly.  If I run into 
> problems  I'll try to fix just this error.
>
> thanks
> david jencks
>
> On Oct 14, 2005, at 6:09 AM, Rick McGuire wrote:
>
>> With a fresh checkout this morning I'm getting the following compile  
>> error:
>>
>> default:
>> java:prepare-filesystem:
>>    [mkdir] Created dir:  
>> C:\Geronimo\geronimo\openejb\modules\core\target\classe
>> s
>>
>> java:compile:
>>    [depend] Deleted 0 out of date files in 0 seconds
>>    [echo] Compiling to  
>> C:\Geronimo\geronimo\openejb\modules\core/target/classes
>>
>>    [javac] Compiling 606 source files to  
>> C:\Geronimo\geronimo\openejb\modules\c
>> ore\target\classes
>> C: 
>> \Geronimo\geronimo\openejb\modules\core\src\java\org\openejb\corba\secu 
>> rity\Se
>> curityInitializer.java:145: cannot resolve symbol
>> symbol  : method generateRealmPrincipal  
>> (java.lang.String,java.lang.String,java.
>> lang.String)
>> location: class org.apache.geronimo.security.util.ConfigurationUtil
>>        RealmPrincipal realmPrincipal =  
>> ConfigurationUtil.generateRealmPrincipal
>> (className, principalName, realm);
>>                                                         ^
>> Note: Some input files use or override a deprecated API.
>> Note: Recompile with -deprecation for details.
>> 1 error
>>
>> BUILD FAILED
>> File...... C:\Documents and  
>> Settings\Administrator\.maven\cache\maven-multiproje
>> ct-plugin-1.3.1\plugin.jelly
>> Element... maven:reactor
>> Line...... 217
>> Column.... 9
>> Unable to obtain goal [default] -- C:\Documents and  
>> Settings\Administrator\.mave
>> n\cache\maven-java-plugin-1.5\plugin.jelly:63:48: <ant:javac> 
>> Compile  failed; se
>> e the compiler error output for details.
>> Total time: 15 minutes 7 seconds
>> Finished at: Fri Oct 14 09:01:05 EDT 2005
>>
>> It appears the generateRealmPrincipal() now takes 4 arguments, but 
>> the  openejb code was not changed to match.  Was this just a missed 
>> commit  on the update?
>>
>> Rick
>>



Re: openejb build problem caused by ConfigurationUtil change?

Posted by David Jencks <da...@yahoo.com>.
oops

I'm hoping to have a more complete fix for the problems introduced by  
the new principal wrapping ready very shortly.  If I run into problems  
I'll try to fix just this error.

thanks
david jencks

On Oct 14, 2005, at 6:09 AM, Rick McGuire wrote:

> With a fresh checkout this morning I'm getting the following compile  
> error:
>
> default:
> java:prepare-filesystem:
>    [mkdir] Created dir:  
> C:\Geronimo\geronimo\openejb\modules\core\target\classe
> s
>
> java:compile:
>    [depend] Deleted 0 out of date files in 0 seconds
>    [echo] Compiling to  
> C:\Geronimo\geronimo\openejb\modules\core/target/classes
>
>    [javac] Compiling 606 source files to  
> C:\Geronimo\geronimo\openejb\modules\c
> ore\target\classes
> C: 
> \Geronimo\geronimo\openejb\modules\core\src\java\org\openejb\corba\secu 
> rity\Se
> curityInitializer.java:145: cannot resolve symbol
> symbol  : method generateRealmPrincipal  
> (java.lang.String,java.lang.String,java.
> lang.String)
> location: class org.apache.geronimo.security.util.ConfigurationUtil
>        RealmPrincipal realmPrincipal =  
> ConfigurationUtil.generateRealmPrincipal
> (className, principalName, realm);
>                                                         ^
> Note: Some input files use or override a deprecated API.
> Note: Recompile with -deprecation for details.
> 1 error
>
> BUILD FAILED
> File...... C:\Documents and  
> Settings\Administrator\.maven\cache\maven-multiproje
> ct-plugin-1.3.1\plugin.jelly
> Element... maven:reactor
> Line...... 217
> Column.... 9
> Unable to obtain goal [default] -- C:\Documents and  
> Settings\Administrator\.mave
> n\cache\maven-java-plugin-1.5\plugin.jelly:63:48: <ant:javac> Compile  
> failed; se
> e the compiler error output for details.
> Total time: 15 minutes 7 seconds
> Finished at: Fri Oct 14 09:01:05 EDT 2005
>
> It appears the generateRealmPrincipal() now takes 4 arguments, but the  
> openejb code was not changed to match.  Was this just a missed commit  
> on the update?
>
> Rick
>


openejb build problem caused by ConfigurationUtil change?

Posted by Rick McGuire <ri...@gmail.com>.
With a fresh checkout this morning I'm getting the following compile error:

default:
java:prepare-filesystem:
    [mkdir] Created dir: 
C:\Geronimo\geronimo\openejb\modules\core\target\classe
s

java:compile:
    [depend] Deleted 0 out of date files in 0 seconds
    [echo] Compiling to 
C:\Geronimo\geronimo\openejb\modules\core/target/classes

    [javac] Compiling 606 source files to 
C:\Geronimo\geronimo\openejb\modules\c
ore\target\classes
C:\Geronimo\geronimo\openejb\modules\core\src\java\org\openejb\corba\security\Se
curityInitializer.java:145: cannot resolve symbol
symbol  : method generateRealmPrincipal 
(java.lang.String,java.lang.String,java.
lang.String)
location: class org.apache.geronimo.security.util.ConfigurationUtil
        RealmPrincipal realmPrincipal = 
ConfigurationUtil.generateRealmPrincipal
(className, principalName, realm);
                                                         ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -deprecation for details.
1 error

BUILD FAILED
File...... C:\Documents and 
Settings\Administrator\.maven\cache\maven-multiproje
ct-plugin-1.3.1\plugin.jelly
Element... maven:reactor
Line...... 217
Column.... 9
Unable to obtain goal [default] -- C:\Documents and 
Settings\Administrator\.mave
n\cache\maven-java-plugin-1.5\plugin.jelly:63:48: <ant:javac> Compile 
failed; se
e the compiler error output for details.
Total time: 15 minutes 7 seconds
Finished at: Fri Oct 14 09:01:05 EDT 2005

It appears the generateRealmPrincipal() now takes 4 arguments, but the 
openejb code was not changed to match.  Was this just a missed commit on 
the update?

Rick

Re: Clustering

Posted by Dave Colasurdo <da...@earthlink.net>.
Can we level-set the conversation (in this subthread) by describing the 
current clustering options available in Geronimo.  It seems that Tomcat 
and Jetty already have some level of web tier clustering.  Can a 
geronimo user easily leverage this support?

Specifically, Tomcat supports Load Balancing via JK 
connector/mod_proxy/balancer, HttpSession failover via 
file/database/memory replication, sticky session, etc..
Though it seems that some of the configuration/management depends on 
tomcat server.xml..  Can geronimo users currently easily leverage this 
web tier clustering?

I understand that Tomcat and Jetty provide only Web tier solutions and 
don't address EJB, JNDI, JDBC, JMS..  Though just wondering whether how 
relevant their web tier solutions are to geronimo.

Also, how does Tangosol Coherence fit in?  Is this an application level 
clustering solution?

Dave



Jeff Genender wrote:
> Now that we have achieved the covetted J2EE Certification, we need to 
> start thinking about some of the things we will need to have in Geronimo 
> in order to be mass adopted by the Enterprise.
> 
> IMHO, I think one of the huge holes is clustering.  This is a heavy need 
> by many companies and I believe that until we get a powerful clustering 
> solution into G, it will not be taken as a serious J2EE contender.
> 
> So, with that said, I wanted to start a discussion thread on clustering 
> and what we need to do to get this into Geronimo.  I personally would 
> like to be involved in this (thus the reason for me starting this 
> thread) - yeah, since Tomcat is done, now I am bored ;-).
> 
> I was going over the lists and emails and had some great discussion with 
> Jules on the WADI project he has built.  This seems compelling to me.  I 
> also noticed Active Cluster as a possibility.
> 
> So lets start from the top.  Do we use an already available clusering 
> engine or do we roll our own?  Here is a small list of choices I have 
> reviewed and it is by no means complete...
> 
> 1) WADI
> 2) Active Cluster
> 3) Leverage the Tomcat Clustering engine
> 
> So here are some of my questions...
> 
> How complete is WADI and Active Cluster?  Both look interesting to me. 
> My only concern with Active Cluster is it seems to be JMS based, which I 
> think may be slow for high performance clustering (am I incorrect on 
> this?).  How mature is WADI?
> 
> Thoughts and opinions are welcomed.
> 
> Jeff
> 
>