Size: 619
Comment:
|
Size: 2959
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
The Group service consists of a client library and and active-standby server process running on the system controller nodes. | == SAFplus Group service == |
Line 3: | Line 3: |
A group is identified by a well-known [[ClusterUniqueId]], or a dynamically created one. A group can be named via the [[Name]] service and all APIs that require a group will also accept a string name. | The Group service consists of a client library and an active-standby server process running on the system controller nodes. The group service simply tracks membership to abritrarily defined sets and allows an "active" and "standby" to be elected. Clients can access the list of members of the group and get the current active and standby. Notifications are posted for any group membership or role change. Failures of nodes or applications can cause automatic removal of membership for affected members and automatic re-election if the active or standby members are affected. A group is identified by a well-known [[HandleT]], or a dynamically created one. A group can be named via the [[Name]] service and all APIs that require a group will also accept a string name. === Well Known Group: Cluster Node Membership === The Cluster Node Membership group controls admission into the SAFplus cluster and elects Active and Standby system controllers. === Well Known Group: Cluster Component Membership === All components are in this group. No Active/Standby is elected. === Active entity responsibilities === The Active entity has the following additional responsibilities: 1. Entity admission: If the active entity registers an admission filter, it will be called before new entities are allowed into the group. === Failover === If the group detects failure of the active, the standby will become active and an election run for a new standby. === Elections === If the group has enabled elections, when the entity designated the active or standby fails a reelection will occur. A "bully" election shall be used. It occurs as follows: Any group member can call for an election at any time for Active, Standby or both Active and Standby roles. Every entity in the group shall respond with an election message to every other entity containing its credentials. The credential shall be shifted and ORed with the entities' unique ID to ensure that credentials are unique. The member with the highest credentials shall win the election. This member shall send a message "claiming" the role. Receipt of this message ends the election. Groups can modify the election algorithm by choosing how the credential number is calculated. Some examples: return 0: No credentials means the highest ID gets elected. This will cause the groups' Active/Standby to "fail-back" to a restarted node... return 2 if master, 1 if standby, else 0: This will cause both the Active and Standby roles to be "sticky" -- that is, the current master/standby is preferred over a newly joined entity. |
Line 7: | Line 41: |
A group can be named via the [[Name]] service. The Group service interacts with the messaging service, allowing several modes: * broadcast messages to all members of the group * send to master * local round robin |
1. A group can be named via the [[Name]] service. 1. The Group service interacts with the messaging service, allowing several modes: * broadcast messages to all members of the group * send to master * local round robin |
Line 13: | Line 47: |
The default mode is defined by the group. | The default mode is defined by the group. |
SAFplus Group service
The Group service consists of a client library and an active-standby server process running on the system controller nodes. The group service simply tracks membership to abritrarily defined sets and allows an "active" and "standby" to be elected. Clients can access the list of members of the group and get the current active and standby. Notifications are posted for any group membership or role change. Failures of nodes or applications can cause automatic removal of membership for affected members and automatic re-election if the active or standby members are affected.
A group is identified by a well-known HandleT, or a dynamically created one. A group can be named via the Name service and all APIs that require a group will also accept a string name.
Well Known Group: Cluster Node Membership
The Cluster Node Membership group controls admission into the SAFplus cluster and elects Active and Standby system controllers.
Well Known Group: Cluster Component Membership
All components are in this group. No Active/Standby is elected.
Active entity responsibilities
The Active entity has the following additional responsibilities:
1. Entity admission: If the active entity registers an admission filter, it will be called before new entities are allowed into the group.
Failover
If the group detects failure of the active, the standby will become active and an election run for a new standby.
Elections
If the group has enabled elections, when the entity designated the active or standby fails a reelection will occur.
A "bully" election shall be used. It occurs as follows: Any group member can call for an election at any time for Active, Standby or both Active and Standby roles. Every entity in the group shall respond with an election message to every other entity containing its credentials. The credential shall be shifted and ORed with the entities' unique ID to ensure that credentials are unique. The member with the highest credentials shall win the election. This member shall send a message "claiming" the role. Receipt of this message ends the election.
Groups can modify the election algorithm by choosing how the credential number is calculated. Some examples:
return 0: No credentials means the highest ID gets elected. This will cause the groups' Active/Standby to "fail-back" to a restarted node... return 2 if master, 1 if standby, else 0: This will cause both the Active and Standby roles to be "sticky" -- that is, the current master/standby is preferred over a newly joined entity.
Synergy
A group can be named via the Name service.
- The Group service interacts with the messaging service, allowing several modes:
- broadcast messages to all members of the group
- send to master
- local round robin