A highly available log service for distributed transaction processing
Camargos, LásaroFacoltà di scienze informatiche, Università della Svizzera italiana, Svizzera
Wieloch, MarcinFacoltà di scienze informatiche, Università della Svizzera italiana, Svizzera
Pedone, FernandoFacoltà di scienze informatiche, Università della Svizzera italiana, Svizzera
2006
52 p.
English
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.