Core group View Synchrony Protocol
The View Synchrony Protocol is established over the set of core group members that can communicate with each other. This protocol provides guaranteed, in-order message delivery for message streams that involve one sender and potentially multiple receivers. This guarantee is similar to the guarantees that TCP/IP provides for point-to-point message streams.
The set of core group members for which the View Synchrony Protocol is established is commonly referred to as a view. Views are unique in time and space. The act of adding or removing members from the view is called a view change. A view change is an important and relatively expensive synchronization point. It is also the point where synchronization, consistency and network issues are detected.
The View Synchrony Protocol is transparent to both components using the high availability manager framework and product administrators. However, disruptions in the View Synchrony Protocol might become visible, most notably when a boundary condition known as a view change occurs.
View changes
When a core group member starts, the core group transport and the associated default Discovery Protocol, default Failure Detection Protocol, and View Synchrony Protocol also start. The View Synchrony Protocol establishes an initial view containing only the local member. The View Synchrony Protocol is notified when the default Discovery Protocol establishes connections with other core group members. The view synchrony layer of the newly connected members then exchange state information. This information is used to determine if a new view can be formed. For example, if a newly started member discovers an existing view, it negotiates with the members of the existing view to establish a new view.
When a member of an established view stops or fails, the default Failure Detection Protocol on the surviving view members detects the failure and notifies the View Synchrony Protocol. The surviving members then establish a new view that excludes the failed member.
Before a new view is established, activities related to the current view must be completed. All messages sent in the current view must be received and acknowledged by all intended recipients that are still alive. The current members must exchange a non-trivial amount of state information regarding messages sent and received. These members then perform the activities needed to complete the pending message activity, which might include the retransmission of messages that seem to be lost.
Install a new view might result in significant, temporary spikes in the amount of CPU consumed and the network bandwidth used.
View change messages
A view change is a complex multipart procedure and a number of messages are logged every time a view is changed. These messages indicate the stage of view change processing that is complete or is currently running.
For example, the following message indicates that a set of core group members agreed to establish a new view and initiated the view change procedure:
DCSV8054I: DCS Stack DefaultCoreGroup at Member anzioCell01\anzioCellManager01\dmgr: View change in process.
The following message indicates that all messages sent in the current view are completed and acknowledged:
DCSV2004I: DCS Stack DefaultCoreGroup at Member anzioCell01\anzioCellManager01\dmgr: The synchronization procedure completed successfully. The View Identifier is (2:0.anzioCell01\anzioCellManager01\dmgr). The internal details are [0].
The following messages indicate that the view change completed successfully. They also specify the name or identifier for the new view, and the number of core group members in that view:
HMGR0218I: A new core group view has been installed. The core group is DefaultCoreGroup. The view identifier is (3:0.anzioCell01\anzioCellManager01\dmgr). The number of members in the new view is 2.
DCSV1033I: DCS Stack DefaultCoreGroup at Member anzioCell01\anzioCellManager01\dmgr: Confirmed all new view members in view identifier (3:0.anzioCell01\anzioCellManager01\dmgr). View channel type is View|Ptp.
The following message provides extended status regarding the state of connections and view synchrony:
DCSV8050I: DCS Stack DefaultCoreGroup at Member anzioCell01\anzioCellManager01\dmgr: New view installed, identifier (3:0.anzioCell01\anzioCellManager01\dmgr), view size is 2 (AV=2, CD=2, CN=2, DF=6)
In this message:
- AV is the number of core group members in the view.
- CN is the number of core group members to which this member has open connections. Normally this number is the same as the number that is specified for AV.
- CD is the number of core group members to which this member has open connections minus the number of bad members. A bad member is one that is connected to this member, but cannot currently establish a view with this member.
- DF is the number of members defined in the core group.
Related:
Core group transports