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/