Introduction. Many large applications—such as Google search, Gmail, Facebook, Dropbox, eBay, online banking and card payment processing—are expected to be available continuously, even under peak load, congestion in parts of the network, server failures, and during scheduled hardware or software upgrades. Such applications also typically manage large amounts of data. To achieve the desired avail...