Package org.jgroups.protocols.pbcast
Class GMS.DefaultMembershipPolicy
java.lang.Object
org.jgroups.protocols.pbcast.GMS.DefaultMembershipPolicy
- All Implemented Interfaces:
MembershipChangePolicy
- Direct Known Subclasses:
LargestWinningPolicy
- Enclosing class:
GMS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetNewMembership(Collection<Collection<Address>> subviews) Default implementation for a merge.getNewMembership(Collection<Address> current_members, Collection<Address> joiners, Collection<Address> leavers, Collection<Address> suspects) Takes the existing membership list and removes suspected and left members, then adds new members to the end of the listgetNewMembershipOld(Collection<Collection<Address>> subviews) Old default implementation for a merge.
-
Constructor Details
-
DefaultMembershipPolicy
public DefaultMembershipPolicy()
-
-
Method Details
-
getNewMembership
public List<Address> getNewMembership(Collection<Address> current_members, Collection<Address> joiners, Collection<Address> leavers, Collection<Address> suspects) Takes the existing membership list and removes suspected and left members, then adds new members to the end of the list- Specified by:
getNewMembershipin interfaceMembershipChangePolicy- Parameters:
current_members- The list of current members. Guaranteed to be non-null (but may be empty)joiners- The joining members. Guaranteed to be non-null (but may be empty)leavers- Members that are leaving. Guaranteed to be non-null (but may be empty)suspects- Members which are suspected. Guaranteed to be non-null (but may be empty)- Returns:
- The new membership. Needs to be non-null and cannot contain duplicates
-
getNewMembershipOld
Old default implementation for a merge. Adds all members into a list, sorts the list and returns it- Parameters:
subviews- A list of membership lists, e.g. [{A,B,C}, {M,N,O,P}, {X,Y,Z}]. This is a merge between 3 subviews. Guaranteed to be non-null (but may be empty)- Returns:
- The new membership. Needs to be non-null and cannot contain duplicates
-
getNewMembership
Default implementation for a merge. Picks the new coordinator among the coordinators of the old subviews by getting all coords, sorting them and picking the first. Then the coord is added to the new list, and all subviews are subsequently added.Tries to minimize coordinatorship moving around between different members
- Specified by:
getNewMembershipin interfaceMembershipChangePolicy- Parameters:
subviews- A list of membership lists, e.g. [{A,B,C}, {M,N,O,P}, {X,Y,Z}]. This is a merge between 3 subviews. Guaranteed to be non-null (but may be empty)- Returns:
- The new membership. Needs to be non-null and cannot contain duplicates
-