Facoltà di scienze informatiche

A highly available log service for distributed transaction processing

Camargos, Lásaro ; Wieloch, Marcin ; Pedone, Fernando

Processing distributed transactions hinges on enforcing atomicity and durability: resource managers participating in a transaction must agree on its outcome and the transaction updates must be permanent. We introduce the log service abstraction, which gathers resource managers’ votes to commit or abort a transaction and their updates, and outputs the transaction’s outcome. Updates are made... Plus

Ajouter à la liste personnelle
    Summary
    Processing distributed transactions hinges on enforcing atomicity and durability: resource managers participating in a transaction must agree on its outcome and the transaction updates must be permanent. We introduce the log service abstraction, which gathers resource managers’ votes to commit or abort a transaction and their updates, and outputs the transaction’s outcome. Updates are made durable and non-concurrent transactions are totally ordered by the service. The sequence of updates performed by a resource manager is available as a means to consistently recover resource managers without relying on their local state. As a consequence, a remote process, whose state will be recovered from the log service, can reincarnate a crashed resource manager. Moreover, the service ensures that only one process plays the role of a given resource manager at any time. We present two highly available implementations of this service and evaluate their performance running TPC-C and a microbenchmark on a distributed database.