Patent ID: 7991753

Claim:
A method performable by a first node of a plurality of nodes of a divided cluster comprising: initially waiting for a delay corresponding to a node identifier of the first node; asserting an intent to acquire a lock by writing the node identifier of the first node to an X variable and writing the node identifier of the first node to a Y variable where a second node has failed to acquire the lock; after asserting the intent to acquire the lock, waiting for a third node to acquire the lock where the third node has written to the X variable, and proceeding to perform a first group of actions where the Y variable remains equal to the node identifier of the first node, or where the third node has failed to acquire the lock, where the first group of actions comprises, in order of performance: waiting for a fourth node to acquire the lock where the fourth node has written to a Z variable and thereafter writing the node identifier of the first node to the Z variable and proceeding to perform a second group of actions where the fourth node has failed to acquire the lock, where the second group of actions comprises, in order of performance: writing a value to the Y variable indicating that the first node is acquiring the lock; and, maintaining acquisition of the lock by periodically writing the node identifier of the first node to the Z variable.