FLAC: A Robust Failure-Aware Atomic Commit Protocol for Distributed Transactions
Preprint
Abstract
In distributed transaction processing, atomic commit protocol (ACP) is used to ensure database consistency. With the use of commodity compute nodes and networks, failures such as system crashes and network partitioning are common. It is therefore important for ACP to dynamically adapt to the operating condition for efficiency while ensuring the consistency of the database. Existing ACPs often assume stable operating conditions, hence, they are either non-generalizable to different environments or slow in practice. In this paper, we propose a novel and practical ACP, called Failure-Aware Atomic Commit (FLAC). In essence, FLAC includes three protocols, which are specifically designed for three different environments: (i) no failure occurs, (ii) participant nodes might crash but there is no delayed connection, or (iii) both crashed nodes and delayed connection can occur. It models these environments as the failure-free, crash-failure, and network-failure robustness levels. During its operation, FLAC can monitor if any failure occurs and dynamically switch to operate the most suitable protocol, using a robustness level state machine, whose parameters are fine-tuned by reinforcement learning. Consequently, it improves both the response time and throughput, and effectively handles nodes distributed across the Internet where crash and network failures might occur. We implement FLAC in a distributed transactional key-value storage system based on Google Percolator and evaluate its performance with both a micro benchmark and a macro benchmark of real workload. The results show that FLAC achieves up to 2.22x throughput improvement and 2.82x latency speedup, compared to existing ACPs for high-contention workloads.Keywords
All Related Versions
This publication has 18 references indexed in Scilit:
- The Weakest Failure Detectors to Solve Quittable Consensus and Nonblocking Atomic CommitSIAM Journal on Computing, 2012
- Failure prediction in IBM BlueGene/L event logs2008 IEEE International Symposium on Parallel and Distributed Processing, 2008
- Fast PaxosDistributed Computing, 2006
- Non blocking atomic commitment with an unreliable failure detector2002
- The presumed-either two-phase commit protocolIEEE Transactions on Knowledge and Data Engineering, 2002
- Non-blocking atomic commit in asynchronous distributed systems with failure detectorsDistributed Computing, 2002
- Quality-of-service specification in distributed object systemsDistributed Systems Engineering, 1998
- Understanding fault-tolerant distributed systemsCommunications of the ACM, 1991
- A Formal Model of Crash Recovery in a Distributed SystemIEEE Transactions on Software Engineering, 1983
- Concurrency Control and Consistency of Multiple Copies of Data in Distributed IngresIEEE Transactions on Software Engineering, 1979