You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by lichtner <li...@bway.net> on 2006/02/15 20:38:18 UTC

Apache-licensed version of jgroups?

Is there any interest in an apache-licensed version of jgroups?

I am thinking something along these lines:

1. Well-understood layered architecture, of x-kernel, Ensemble, and
JGroups fame.

2. Performance-focused: low thread count per protocol layer (0+), no java
serialization.

3. Simple: implement best-of-breed protocols only, and provide
pre-assembled protocol stacks.

4. Release 1.0 with basic protocols: membership, mnak, flow control, etc.

I would be happiest with an arrangement where somebody junior would code
it and I would serve as an advisor (if needed) based on my experience with
EVS4J, with the actual coder taking the credit for it.

I would like to see Geronimo evolve quickly into an industrial strength
server (which I think it will) so I can stop using all the other app
servers ..

Guglielmo

Re: Apache-licensed version of jgroups?

Posted by lichtner <li...@bway.net>.
I will take a look.

On Fri, 17 Feb 2006, James Strachan wrote:

> Have you taken a look at ActiveIO which we use for various low level
> communication protocols like TCP, NIO, AIO etc...
>
> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
>
> e.g.
>
> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
> activeio-core/src/main/java/org/apache/activeio/
>
> it might prove a useful starting place to layer on protocols like
> membership, mnak etc?
>
> We're already using ActiveIO in ActiveMQ and OpenEJB; I'm sure it
> could be used in other places too.
>
> James
>
>
> On 15 Feb 2006, at 19:38, lichtner wrote:
> >
> > Is there any interest in an apache-licensed version of jgroups?
> >
> > I am thinking something along these lines:
> >
> > 1. Well-understood layered architecture, of x-kernel, Ensemble, and
> > JGroups fame.
> >
> > 2. Performance-focused: low thread count per protocol layer (0+),
> > no java
> > serialization.
> >
> > 3. Simple: implement best-of-breed protocols only, and provide
> > pre-assembled protocol stacks.
> >
> > 4. Release 1.0 with basic protocols: membership, mnak, flow
> > control, etc.
> >
> > I would be happiest with an arrangement where somebody junior would
> > code
> > it and I would serve as an advisor (if needed) based on my
> > experience with
> > EVS4J, with the actual coder taking the credit for it.
> >
> > I would like to see Geronimo evolve quickly into an industrial
> > strength
> > server (which I think it will) so I can stop using all the other app
> > servers ..
> >
> > Guglielmo
>
>
> James
> -------
> http://radio.weblogs.com/0112098/
>
>

Re: Apache-licensed version of jgroups?

Posted by lichtner <li...@bway.net>.
On Mon, 20 Feb 2006, James Strachan wrote:

> Incidentally I'm interested to see if reliable multicast in Java
> actually makes sense from a performance perspective.

Back in 2000 I was curious also. That's why I wrote an implementation of
totem. EVS4J can send about 7000 messages per second. The latency depends
on the size of the ring. You can tune both together using the windowSize
as a tuning knob.

> JGroups for example is generally pretty slow; we tend to use TCP in
> ActiveMQ if folks want high performance reliable communication and find
> its way faster; so I'm not sure if reliable multicast in Java would ever
> perform well enough to be worth it from a pure performance perspective.
> I'd love to be proved wrong of course :).

When you have a free hour, see

http://www.bway.net/~lichtner/evs4j.html

I cannot guarantee that you will decide to use evs4j, but I can guarantee
that you will get a kick out of watching it run.

Don't forget to try different window sizes.

> Certainly reliable multicast can use less bandwidth if multiple nodes
> are all consuming the same data, so even if its slower, there are use
> cases for it.
>
> I'm looking forward to whatever you come up with :)

It doesn't sound like people need it, so it probably won't happen.

Re: Apache-licensed version of jgroups?

Posted by James Strachan <ja...@gmail.com>.
ActiveIO is not an implementation of reliable multicast; JRMS and  
JGroups are examples of that - purely its our IO abstraction for  
dealing with TCP, UDP, NIO, AIO, JXTA and others. Is it a bit too  
complex? Yes. Does it need work? Yes.  I'm not necessarily saying you  
must use it if you want to make a reliable multicast library - feel  
free to do whatever you like.

I purely mentioned it as some of the ActiveIO folks (Alan?) have in  
the past talked about wanting to add reliable multicast into ActiveIO  
- and that it already acts as an API for integration into existing  
Geronimo components - so it would be good if any reliable multicast  
could sit underneath it; but feel free to go in whatever direction  
you feel.

Incidentally I'm interested to see if reliable multicast in Java  
actually makes sense from a performance perspective. JGroups for  
example is generally pretty slow; we tend to use TCP in ActiveMQ if  
folks want high performance reliable communication and find its way  
faster; so I'm not sure if reliable multicast in Java would ever  
perform well enough to be worth it from a pure performance  
perspective. I'd love to be proved wrong of course :). Certainly  
reliable multicast can use less bandwidth if multiple nodes are all  
consuming the same data, so even if its slower, there are use cases  
for it.

I'm looking forward to whatever you come up with :)

James


On 17 Feb 2006, at 16:59, lichtner wrote:
> James,
>
> I looked at the api, to try to get an idea of what it does. I tried to
> look at faqs and other links on activeio.codehaus.org, and I had to  
> create
> a Confluence account, and the links were empty (boiler plate links?).
>
> I am sure you can explain to me what the mission of this project is
> supposed to be. But in any case, it seems pretty complex. Without  
> spending
> a lot more time on it I just don't know if this is a good  
> foundation for
> adding reliable multicasting, specifically I cannot gauge what kind of
> performance you are going to get - I am not interested in building  
> toys -
> we have those already. Perhaps you have a specific design in mind for
> adding reliable multicast?
>
> If it were up to me, as a first guess, I could see using activeio to
> handle state transfer (to add new nodes or migrate replicas) but  
> not for
> multicasting itself. That's just my first impression. Please advise.
>
> Guglielmo
>
> On Fri, 17 Feb 2006, James Strachan wrote:
>
>> Have you taken a look at ActiveIO which we use for various low level
>> communication protocols like TCP, NIO, AIO etc...
>>
>> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
>>
>> e.g.
>>
>> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
>> activeio-core/src/main/java/org/apache/activeio/
>>
>> it might prove a useful starting place to layer on protocols like
>> membership, mnak etc?
>>
>> We're already using ActiveIO in ActiveMQ and OpenEJB; I'm sure it
>> could be used in other places too.
>>
>> James
>>
>>
>> On 15 Feb 2006, at 19:38, lichtner wrote:
>>>
>>> Is there any interest in an apache-licensed version of jgroups?
>>>
>>> I am thinking something along these lines:
>>>
>>> 1. Well-understood layered architecture, of x-kernel, Ensemble, and
>>> JGroups fame.
>>>
>>> 2. Performance-focused: low thread count per protocol layer (0+),
>>> no java
>>> serialization.
>>>
>>> 3. Simple: implement best-of-breed protocols only, and provide
>>> pre-assembled protocol stacks.
>>>
>>> 4. Release 1.0 with basic protocols: membership, mnak, flow
>>> control, etc.
>>>
>>> I would be happiest with an arrangement where somebody junior would
>>> code
>>> it and I would serve as an advisor (if needed) based on my
>>> experience with
>>> EVS4J, with the actual coder taking the credit for it.
>>>
>>> I would like to see Geronimo evolve quickly into an industrial
>>> strength
>>> server (which I think it will) so I can stop using all the other app
>>> servers ..
>>>
>>> Guglielmo
>>
>>
>> James
>> -------
>> http://radio.weblogs.com/0112098/
>>
>>


James
-------
http://radio.weblogs.com/0112098/


Re: Apache-licensed version of jgroups?

Posted by lichtner <li...@bway.net>.
James,

I looked at the api, to try to get an idea of what it does. I tried to
look at faqs and other links on activeio.codehaus.org, and I had to create
a Confluence account, and the links were empty (boiler plate links?).

I am sure you can explain to me what the mission of this project is
supposed to be. But in any case, it seems pretty complex. Without spending
a lot more time on it I just don't know if this is a good foundation for
adding reliable multicasting, specifically I cannot gauge what kind of
performance you are going to get - I am not interested in building toys -
we have those already. Perhaps you have a specific design in mind for
adding reliable multicast?

If it were up to me, as a first guess, I could see using activeio to
handle state transfer (to add new nodes or migrate replicas) but not for
multicasting itself. That's just my first impression. Please advise.

Guglielmo

On Fri, 17 Feb 2006, James Strachan wrote:

> Have you taken a look at ActiveIO which we use for various low level
> communication protocols like TCP, NIO, AIO etc...
>
> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
>
> e.g.
>
> http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/
> activeio-core/src/main/java/org/apache/activeio/
>
> it might prove a useful starting place to layer on protocols like
> membership, mnak etc?
>
> We're already using ActiveIO in ActiveMQ and OpenEJB; I'm sure it
> could be used in other places too.
>
> James
>
>
> On 15 Feb 2006, at 19:38, lichtner wrote:
> >
> > Is there any interest in an apache-licensed version of jgroups?
> >
> > I am thinking something along these lines:
> >
> > 1. Well-understood layered architecture, of x-kernel, Ensemble, and
> > JGroups fame.
> >
> > 2. Performance-focused: low thread count per protocol layer (0+),
> > no java
> > serialization.
> >
> > 3. Simple: implement best-of-breed protocols only, and provide
> > pre-assembled protocol stacks.
> >
> > 4. Release 1.0 with basic protocols: membership, mnak, flow
> > control, etc.
> >
> > I would be happiest with an arrangement where somebody junior would
> > code
> > it and I would serve as an advisor (if needed) based on my
> > experience with
> > EVS4J, with the actual coder taking the credit for it.
> >
> > I would like to see Geronimo evolve quickly into an industrial
> > strength
> > server (which I think it will) so I can stop using all the other app
> > servers ..
> >
> > Guglielmo
>
>
> James
> -------
> http://radio.weblogs.com/0112098/
>
>

Re: Apache-licensed version of jgroups?

Posted by James Strachan <ja...@gmail.com>.
Have you taken a look at ActiveIO which we use for various low level  
communication protocols like TCP, NIO, AIO etc...

http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/

e.g.

http://svn.apache.org/repos/asf/incubator/activemq/trunk/activeio/ 
activeio-core/src/main/java/org/apache/activeio/

it might prove a useful starting place to layer on protocols like  
membership, mnak etc?

We're already using ActiveIO in ActiveMQ and OpenEJB; I'm sure it  
could be used in other places too.

James


On 15 Feb 2006, at 19:38, lichtner wrote:
>
> Is there any interest in an apache-licensed version of jgroups?
>
> I am thinking something along these lines:
>
> 1. Well-understood layered architecture, of x-kernel, Ensemble, and
> JGroups fame.
>
> 2. Performance-focused: low thread count per protocol layer (0+),  
> no java
> serialization.
>
> 3. Simple: implement best-of-breed protocols only, and provide
> pre-assembled protocol stacks.
>
> 4. Release 1.0 with basic protocols: membership, mnak, flow  
> control, etc.
>
> I would be happiest with an arrangement where somebody junior would  
> code
> it and I would serve as an advisor (if needed) based on my  
> experience with
> EVS4J, with the actual coder taking the credit for it.
>
> I would like to see Geronimo evolve quickly into an industrial  
> strength
> server (which I think it will) so I can stop using all the other app
> servers ..
>
> Guglielmo


James
-------
http://radio.weblogs.com/0112098/