[ClusterLabs] [corosync] Virtual Synchrony Property guarantees in case of network partition

Jan Friesse jfriesse at redhat.com
Mon Jun 6 03:15:17 EDT 2016


> Hello,
> Virtual Synchrony Property - messages are delivered in agreed order and
> configuration changes are delivered in agreed order relative to message.
> What happen to this property when network is partitioned the cluster into
> two. Consider following scenario (which I took from one of the
> previous query by Andrei Elkin):
> * N1, N2 and N3 are in state sync with m(k-1) messages are delivered.

What exactly you mean by "state sync"?

> * N1 sends m(k) and just now network partition N1 node from N2 and N3.
> Does CPG_TYPE_AGREED guarantee that virtual synchrony is held?

Yes it does (actually higher level of VS called EVS)

> When property is held, configuration change message C1 is guaranteed to
> delivered before m(k) to N1.
> N1 will see: m(k-1) C1 m(k)
> N2 and N3 will see: m(k-1) C1
> But if this property is violated:
> N1 will see: m(k-1) m(k) C1
> N2 and N3 will see: m(k-1) C1
> Violation will screw any user application running on the cluster.
> Could someone please explain what is the behavior of Corosync in this
> scenario with CPG_TYPE_AGREED ordering.

For description how exactly totem synchronization works take a look to 

After totem is synchronized, there is another level of synchronization 
of services (not described in above doc). All services synchronize in 
very similar way, so you can take a look to CPG as example. Basically 
only state held by CPG is connected clients. So every node sends it's 
connected clients list to every other node. If sync is aborted (change 
of membership), it's restarted. These sync messages has priority over 
user messages (actually it's not possible to send messages during sync). 
User app can be sure that message was delivered only after it gets it's 
own message. Also app gets configuration change message so it knows, who 
got the message.


> Regards,
> Satish
> _______________________________________________
> Users mailing list: Users at clusterlabs.org
> http://clusterlabs.org/mailman/listinfo/users
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org

More information about the Users mailing list