Patent ID: 8473775
Filing Date: 2013-06-25
Classification: G06F

Abstract:
1. A non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising: code that replicates a write request from a master node to a plurality of slave nodes, the master node and the plurality of slave nodes each residing in a respective data center within a plurality of data centers; code that applies a locality-based durability requirement which determines that the replicated write request has been acknowledged by at least one node residing in each of K data centers out of N data centers, wherein N is a size of the plurality of data centers; code that confirms the replicated write request to a client responsive to the determination that the replicated write request has been acknowledged, the client having originated the write request; code that detects that the master node has failed; code that determines a new master candidate through an election among the slave nodes in response to the detection that the master node has failed; code that waits to recover data from all of the nodes that reside within N−K+1 of the data centers, wherein N is a size of the plurality of data centers and K is a durability requirement; and code that transitions the new master candidate, after the wait, to become a new master that is ready to process another write request.