[Spread-users] Questions about CAUSED_BY_NETWORK

andreas.ames at de.transport.bombardier.com andreas.ames at de.transport.bombardier.com
Mon Mar 11 13:16:48 EDT 2013

Hi John,

thanks a lot for your explanations which make things much more 
understandable to me.

Nevertheless I have some further questions below.

John Schultz <jschultz at spreadconcepts.com> schrieb am 11.03.2013 16:14:45:

> For a given client, the membership list of their *previous* 
> membership, the new membership list and their new VS set allows a 
> client to calculate exactly what kind of change they just saw. 
> Anyone who was in the previous membership list but is not in their 
> new VS set (even if they are in the new membership list) partitioned
> away and may not have seen the same messages in the previous 
> membership of this client.  Anyone who is in the new membership list
> but not in the VS set is a "new" member that merged in.  Thus, a 
> member that is both in this client's previous membership list and in
> the new membership list but isn't in this client's VS set was both 
> removed and added.  Again, that peculiar case means that member 
> partitioned away from this client and, therefore, might not have 
> seen the same messages in this client's previous membership, 
> installed an intervening membership and may have delivered messages 
> in that intervening membership too.  Thus, additional reconciliation
> likely must be done with such a member, much like any other "new" 
> member that merged in from "out of the blue."
> A client can access its VS set by calling the SP_get_memb_info() on 
> its membership message, which fills out a memb_info structure.  You 
> can then pass that structure's my_vs_set field into 
> SP_get_vs_set_members() to get that client's VS set.  Additionally, 
> a client can actually see all the different VS sets that merged 
> together by using SP_get_vs_sets_info() and then iterating over the 
> returned array of vs_set_info's and calling SP_get_vs_set_members() 
> on each one.  Documentation for these functions can be found here: 
> http://www.spread.org/docs/spread_docs_4/docs/c_api.html

When I call SP_receive and get a membership message that is 

* the "new membership list" is returned in the "groups" parameter of 

* the VS set that is to be used for the algorithm you described above is 
the VS set at index "my_vs_set"

* the "previous membership list" is not part of the received message but 
has to be maintained by the application itsself

Is this summary correct?

Is my assumption right that a "self join" and a "self leave" (i.e. the 
member owning the connection represented by the "mbox" parameter of 
SP_receive is joining/leaving a group) is never communicated in a 

And finally: I guess that the maximum length of a membership message body 
CAUSED_BY_NETWORK (parameter "mess" of SP_receive) is primarily a function 
of the number of connections in the whole configuation.  Do you have any 
estimation of this function for me, so that I don't risk partial 
membership messages given a known maximum number of connections?

Thanks again,


Please consider the environment before you print / Merci de penser à 
l'environnement avant d'imprimer / Bitte denken Sie an die Umwelt bevor 
Sie drucken 

Bombardier Transportation GmbH 
Vorsitzender des Aufsichtsrats / Chairman of Supervisory Board: Prof. Dr. 
Wilhelm Bender 
Geschäftsführung / Executive Board: Michael Clausecker 
(Vorsitzender/Chairman), Dr. Susanne Kortendick, Luc Charlemagne, 
Gregorius Peters 
Sitz der Gesellschaft / Principal Office: Berlin 
Registergericht / Registration Court: Amtsgericht Charlottenburg, HRB 


This e-mail communication (and any attachment/s) may contain confidential 
or privileged information and is intended only for the individual(s) or 
entity named above and to others who have been specifically authorized to 
receive it. If you are not the intended recipient, please do not read, 
copy, use or disclose the contents of this communication to others. Please 
notify the sender that you have received this e-mail in error by reply 
e-mail, and delete the e-mail subsequently. Please note that in order to 
protect the security of our information systems an AntiSPAM solution is in 
use and will browse through incoming emails. 
Thank you. 

Ce message (ainsi que le(s) fichier(s)), transmis par courriel, peut 
contenir des renseignements confidentiels ou protégés et est destiné à 
l?usage exclusif du destinataire ci-dessus. Toute autre personne est, par 
les présentes, avisée qu?il est strictement interdit de le diffuser, le 
distribuer ou le reproduire. Si vous l?avez reçu par inadvertance, 
veuillez nous en aviser et détruire ce message. Veuillez prendre note 
qu'une solution antipollupostage (AntiSPAM) est utilisée afin d'assurer la 
sécurité de nos systèmes d'information et qu'elle furètera les courriels 

More information about the Spread-users mailing list