Re: Questions about CAUSED_BY_NETWORK
[email protected] Mon, 11 Mar 2013 18:16:48 +0100
| Newsgroups | gmane.network.spread.user |
|---|---|
| Message-ID | <OF1E73991E.CE1D8131-ONC1257B2B.005D5A0E-C1257B2B.005ED30F@cone.bombardier.com> |
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 <[email protected]> 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 CAUSED_BY_NETWORK: * the "new membership list" is returned in the "groups" parameter of SP_receive * 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 CAUSED_BY_NETWORK message but rather as CAUSED_BY_JOIN, CAUSED_BY_LEAVE or CAUSED_BY_DISCONNECT? 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, aa -- 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 64838 _______________________________________________________________________________________________________________ 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 entrants. Merci. _________________________________________________________________________________________________________________