Patent ID: 8812897

Claim:
A non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising: code that obtains a data item update request from a client; code that updates a data item that is a subject of the data item update request from a master node to a first slave node and a second slave node, the first slave node residing in a first availability zone and the second slave node residing in a second availability zone; code that applies a locality-based durability requirement which determines whether both the first slave node and the second slave node have acknowledged updating the data item; code that confirms the data item update request to the client responsive to determining that the locality-based durability requirement has been met; code that detects that the master node has failed; code that determines a new master candidate through an election among both the first slave node and the second slave node in response to detecting that the master node has failed; code that waits to recover data from a locality-based failover quorum including the first slave node and the second slave node; and code that transitions the new master candidate, after waiting, to become a new master that is ready to process another data item update request.