| Protocol to discover subgroups; e.g., existing due to a network partition (that healed). Example: group
{p,q,r,s,t,u,v,w} is split into 3 subgroups {p,q}, {r,s,t,u} and {v,w}. This protocol will eventually send
a MERGE event with the coordinators of each subgroup up the stack: {p,r,v}. Note that - depending on the time
of subgroup discovery - there could also be 2 MERGE events, which first join 2 of the subgroups, and then the
resulting group to the last subgroup. The real work of merging the subgroups into one larger group is done
somewhere above this protocol (typically in the GMS protocol).
This protocol works as follows:
- If coordinator: periodically retrieve the initial membership (using the FIND_INITIAL_MBRS event provided e.g.
by PING or TCPPING protocols. This list contains {coord,addr} pairs.
- If there is more than 1 coordinator:
- Get all coordinators
- Create a MERGE event with the list of coordinators as argument
- Send the event up the stack
Requires: FIND_INITIAL_MBRS event from below
Provides: sends MERGE event with list of coordinators up the stack
author: Bela Ban, Oct 16 2001 |