Patent ID: 8625464

Claim:
A distributed system configured to quiesce a set of messages, the distributed system comprising: a plurality of nodes, each node comprising one or more physical processors; a first subset of two or more of the plurality of nodes, each node of the first subset further comprising a participant process; a second subset of one or more of the plurality of nodes, each node of the second subset further comprising a coordinator process; and a set of messages sent and received by the plurality of nodes, the set of messages comprising: a relevant message which changes a state of the distributed system; a probe message which requests a probe-response message; the probe-response message which indicates that the sender has processed all received relevant messages from the recipient; a checkpoint message which indicates that the sender has received a probe-response message from each of the plurality of nodes; a continue message requesting a continue-response message; and the continue-response message which indicates whether the sender has received a relevant message from one or more of the plurality of nodes; wherein each participant process is configured to, when executed by at least one node of the first subset: suspend generation of relevant messages; maintain received-message information which indicates whether a relevant message has been received from the plurality of nodes; send probe messages to each of the plurality of nodes; receive probe-response messages from each of the plurality of nodes; receive probe messages from each of the plurality of nodes; and for each probe message received, send the probe-response message to the node which sent the probe message; and wherein each coordinator process is configured to, when executed by at least one node of the second subset: receive checkpoint messages from each of the plurality of nodes; send continue messages to each of the plurality of nodes; receive continue-response messages from each of the plurality of nodes; and based on the received continue-response messages, determine whether the distributed system has been quiesced.