Scalable transaction processing using functors

H Fan, W Golab - 2018 IEEE 38th International Conference on …, 2018 - ieeexplore.ieee.org
2018 IEEE 38th International Conference on Distributed Computing …, 2018ieeexplore.ieee.org
Distributed transactions, which access data items at multiple sites atomically, face well-
known scalability challenges. To avoid the high overhead, in prior work Fan et al. proposed
Epoch-based Concurrency Control (ECC), which makes transactions visible at epoch
boundaries, and presented a system that supports high performance read-only and write-
only transactions. However, this idea has a clear difficulty to overcome: the common case of
a single transaction that does both reading and writing. This paper proposes ALOHA-DB, a …
Distributed transactions, which access data items at multiple sites atomically, face well-known scalability challenges. To avoid the high overhead, in prior work Fan et al. proposed Epoch-based Concurrency Control (ECC), which makes transactions visible at epoch boundaries, and presented a system that supports high performance read-only and write-only transactions. However, this idea has a clear difficulty to overcome: the common case of a single transaction that does both reading and writing. This paper proposes ALOHA-DB, a scalable distributed transaction processing system. ALOHA-DB uses a novel paradigm of serializable transaction processing using functors, which conceptually resemble futures in modern programming languages. A functor is a placeholder for the value of a key, which can be computed asynchronously in the future in parallel with other functor computations of the same or other transactions. With multi-versioning in ECC, the functor computations only rely on accessing historical versions, and so the traditional locking mechanism is not needed for concurrency control. Functors elevate ECC to a new level: supporting serializable distributed read-write transactions. This combination of techniques never aborts transactions due to read-write or write-write conflicts, but allows transactions to fail due to logic errors or constraint violations. We used functor-enabled ECC to implement ALOHA-DB and evaluated it using TPC-C and YCSB read-write distributed transactions. Experimental results demonstrate that our system's performance on the TPC-C benchmark is nearly 2 million transactions per second over 20 eight-core virtual machines, which outperforms Calvin, a state-of-the-art transaction processing and replication layer, by one to two orders of magnitude.
ieeexplore.ieee.org
Showing the best result for this search. See all results