[Spread-users] How to get list of all Groups and its connected members.

Jonathan Stanton jonathan at cnds.jhu.edu
Tue Jul 13 13:02:36 EDT 2004


Hello,

You can find some discussion of this issue of listing all available groups 
and members in the list archives. The short answer is that Spread does not 
provide a way to directly query that currently. You can easily know the 
list of members of a group you have joined (that is the membership 
message) but if you do not join a group, Spread doesn't tell you the 
members.

See below for more answers.

On Tue, Jul 13, 2004 at 11:41:17AM +0530, Murali Bommaku wrote:
> Hi,
> 	Is it possible to get list of all groups (including the joined group and
> other groups) and its connected members info from a valid group member?
> My requirements are as follows:
> 
> I am using Spread 3.17.2, I connected to Spread and joined into a group. I
> wanted to do the following things:
> 
> 1.	I want to list the other groups name, which are existed in Spread Daemon
> (connected and other daemons).
> 2. 	I want to list all members for each group.

See above.

> 3.	I want to send a message only to specified member through Spread (both
> same group and differnt group).

Just send the message using the private group name of the targeted member 
as the "destination" group. So if you want to send a message to a client 
whose private name is "joe" who connected to the daemon running on machine 
with name "a", then just send a SP_multicast to the group "#joe#a" which 
is the private group name of that client. This 'unicast' message can be 
done wither or not either client has joined any groups -- they just have 
to have connected to a daemon. The easiest way to learn the private group 
name of another client is to have them send you a message (as then the 
'sender' field has the private group name). You can also 'guess' the name 
as I did above because the names always follow a standard pattern 
"#user#machine"


 > 4.	Is there anyway to send a message to other 
group/group member?

Yes, Spread supports "open-group" semantics. Meaning any client can send a 
message to any group (even if it has not joined the group).

> 5.	If I am disconnected due to spread daemon crash/termination then I want
> any nearest spread daemon automatically binds the members who are bind the
> just terminated spread daemon without losing any communication data.

This is not the way Spread works. The clients are responsible for any 
fault-handling and failover because only the clients know the actual state 
of the their application data. The Spread daemons do maintain their 
internal state in the presense of failures and the set of daemons will 
maintain all of hte groups -- however, the clients who were directly 
connected to a failed daemon will have to reconnect to another daemon (or 
wait for the failed daemon to restart) and then run a resynchronization 
protocol for their application to catch up with clients and daemons who 
did not fail.

In Spread 'clients' are in control of all of the connections and initiate 
actions, the daemons just process messages requested by clients, so the 
daemons can not initiate a failover of clients they are not connected to 
as they do not know anything about their state.

Cheers,
Jonathan

-- 
-------------------------------------------------------
Jonathan R. Stanton         jonathan at cs.jhu.edu
Dept. of Computer Science   
Johns Hopkins University    
-------------------------------------------------------




More information about the Spread-users mailing list