An asynchronous, decentralised commitment protocol for semantic optimistic replication
Résumé
We study eventual consistency in an asynchronous system with optimistic data replication. A site executes actions submitted by the local client, and remote actions as they are received. This state is only tentative, because semantic constraints such as conflicts, dependence, or atomicity may cause it to roll back some of its state and compute a new state. The system should be eventually consistent, i.e., (i) each local schedule be correct and stabilise eventually, and (ii) the schedules at each site eventually converge. We propose a decentralised, asynchronous commitment protocol that ensures this. Each site proposes a set of schedules to all other sites. A proposal can be decomposed into one or more semantically-meaningful units, called candidates. A candidate wins when it receives a majority or a plurality of the votes in its election, leaving room for missing votes. The protocol is fully asynchronous: each site executes its tentative schedule independently, and determines locally when a candidate has won an election. The protocol is safe in the presence of non-byzantine faults. It supports a rich repertoire of semantic relations, viz., it resolves conflicts, it guarantees sound executions with respect to dependence or atomicity, and it orders non-commuting pairs of actions, but not necessarily commuting ones. We describe the protocol in detail and prove it safe.
Origine | Fichiers produits par l'(les) auteur(s) |
---|