Re: Individual Members of PeerGroup

Mohamed Abdelaziz <[email protected]> Fri, 09 Sep 2005 16:24:59 -0700
Newsgroups gmane.comp.java.jxta.user
Message-ID <[email protected]>
Using a the same propagate pipe (a new op instance, same pipe id and a 
set of peers), as a unicast pipe is a lot more efficient in the 
following situations :

- High churn rate
- The set of peers > PeerView/2
- Infrequently invoked

 A Unicast pipe carries a higher cost due to pipe/route resolution, 
whereas with a propagate pipe  the network is leveraged for message 
delivery.

-- 
http://blogs.sun.com/roller/page/hamada
http://weblogs.java.net/blog/hamada



Vitaly Vainer wrote:

> Hi Paul,
> I would suggest to maintain special recovery input pipe with well 
> known id on each peer, so you'll know how to address them by unicast 
> output pipe.
> In my application the network is by its nature unstable too, so I'm 
> using well known ids for basic services and your recovery service 
> looks very appropriate for this approach.
>  
> Vitaly.
>
>  
> On 9/9/05, *Poole, Paul P1* <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     Mohamed,
>
>     Thanks for taking the time to respond... Here is what I am trying to
>     accomplish:
>
>     I have designed a system where each message generated by a peer for a
>     group is numbered.  This numbering is used by the other peers to
>     determine if they have received all of the messages from a given peer.
>     If a message received is larger than expected, then it is threaded
>     into
>     recovery mode (after a short sleep cycle since some messages are
>     received out of order).  In recovery mode, I want a peer to be able to
>     request from other peers the messages that were missed.  However, I do
>     not want the query to be propagated to the entire group, just a
>     couple
>     of them (at most 3).  I am trying to develop this for a very unstable
>     network - peers are coming and going at a high rate.  Thus, I want
>     to be
>     able to obtain the "latest" list from the rendezvous and send my
>     recovery requests to a few members of the group that are currently
>     connected (preferentially connected with least latency, but that
>     will be
>     tackled later).  I thought that perhaps grabbing the current list from
>     rdv and sending a recovery message to a few of them would work,
>     but I am
>     unable to get the propagate method to work (I have created a separate
>     thread for that problem).
>
>     I would love to hear alternative suggestions.
>
>     My current problem with performing a unicast loop is that I do not
>     understand how to obtain a pipe for each peer that I chose from
>     the list
>     of connected peers.  If I can get a unicast pipe from each of those
>     peers, then I could set this up to simply unicast the recovery
>     message.
>
>     Thanks for your help!!!
>
>     -----Original Message-----
>     From: Mohamed Abdelaziz [mailto:[email protected]
>     <mailto:[email protected]>]
>     Sent: Thursday, September 08, 2005 8:12 PM
>     To: [email protected] <mailto:[email protected]>
>     Subject: Re: [JXTA user] Individual Members of PeerGroup
>
>
>     Mohamed Abdelaziz wrote:
>
>     > Paul,
>     >
>     > Creating an OutputPipe object with the desired set of peers should
>     > provide the functionality you seek. Using rendezvous propagation may
>     > work given the correct service name and param, however, we advise
>     > against it, mainly due to the potential flood everywhere, and as a
>     > result it has become more restrictive in the upcoming release 2.3.5.
>     >
>     > Is this a static set of peers, or you looking for suggestions on
>     how
>     > to dynamically create one?
>     >
>     > if it is the latter, perhaps a ping message over the propagate pipe
>     > results into a unicast response over the same propagate pipe.
>
>
>     Another suggestion is to keep track of peers over the course of
>     communication and dynamically augment the random set of peers.
>

-- 
http://blogs.sun.com/roller/page/hamada
http://weblogs.java.net/blog/hamada