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/

Reply via email to