users@shoal.java.net

Re: [Shoal-Users] two questions about messaging

From: Shreedhar Ganapathy <Shreedhar.Ganapathy_at_Sun.COM>
Date: Sat, 05 Jan 2008 13:21:45 -0800

Hi Michael
Sorry for the late response. We had a pretty intense storm here in
California and my home lost power for about 30 hours.
See below for my response:


Michael Bien wrote:
> Hello,
>
> I have two questions regarding the messaging implementation of shoal.
>
> GroupHandle.sendMessage(...) throws GMSException for "any exception
> while sending message wrapped into GMSException".
> Do I interpret that correctly that the caller can be sure that the
> message arrived if he hasn't caught any exception? Or is a "answer
> message" recommended to make sure that messages don't get lost?
The API was written with the expectation that exceptions occurring at
the point of sending a message would be reported. It did not have any
notion of delivery guarantees. That said, if the underlying
implementation provided guaranteed message delivery then that would be
of added benefit.
The current provider implementation uses Jxta wherein unicast (peer to
peer) messages use TCP and hence get the reliability of the transport.
So if your message is being sent to a particular member of the group
that would go through the TCP channel. Where the message is group-wide,
it uses UDP which can potentially lose messages under load. We don't yet
have a reliable multicast layer in this provide implementation.
> Are all CallBacks registered with gms.addActionFactory(new
> ???ActionFactoryImpl(callback)); called from the same thread?
Each Signal corresponding to an ??ActionFactoryImpl is constructed on a
dedicated thread from a threadpool with the exception of MessageSignal
as putting each Message Signal on a separate thread would result in
ordering issues. For Signals other than MessageSignal the call backs
could potentially be by different corresponding ??Signal threads if the
same event is occurring in very quick succession before an earlier
callback invocation has finished. For instance, a
FailureNotificationSignal call back could be on multiple threads if
multiple failure events occur at the same time and an earlier
callback.processNotification() has not yet finished.
> And also (just because I am curious ;) ) is there an update interval
> for the synchronization of the DistributedStateCash?
The DistributedStateCache synchronizes for each put and also when a new
member join arrives and a state sync needs to be done.
>
> I am currently attempting to distribute a ForkJoinPool (jsr166y - fork
> join framework) over the network with the help of shoal and have to
> make sure that every task/computed result arrives to its destination
> node (https://fishfarm.dev.java.net/).
We need to study this more. Let us know if any new requirements arise
out of this. We would be happy to help.

Shreedhar :)

>
> thank you in advance,
>
> Michael
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_shoal.dev.java.net
> For additional commands, e-mail: users-help_at_shoal.dev.java.net
>