Affiliation:
1. Stanford University
2. MIT
3. University of Wisconsin
Abstract
Developers are increasingly building applications that incorporate multiple data stores, for example to manage heterogeneous data. Often, these require transactional safety for operations across stores, but few systems support such guarantees. To solve this problem, we introduce Epoxy, a protocol for providing transactions across heterogeneous data stores. We make two contributions. First, we adapt multi-version concurrency control to a cross-data store setting, storing versioning information in record metadata and filtering reads with predicates on metadata so they only see record versions in a global transaction snapshot. Second, we show our design enables an atomic commit protocol that does not require data stores implement the participant protocol of two-phase commit, requiring only durable writes. We implement Epoxy for five data stores: Postgres, Elasticsearch, MongoDB, Google Cloud Storage, and MySQL. We evaluate it by adapting TPC-C and microservice workloads to a multi-data store environment. We find it has comparable performance to the distributed transaction protocol XA on TPC-C while providing stronger guarantees like isolation, and has overhead of <10% compared to a non-transactional baseline on read-mostly microservice workloads and 72% on write-heavy workloads.
Publisher
Association for Computing Machinery (ACM)
Subject
General Earth and Planetary Sciences,Water Science and Technology,Geography, Planning and Development
Reference34 articles.
1. One-phase commit: does it make sense?
2. Y Al-Houmaily and Panos K Chrysanthis . 1996 . The implicit-yes vote commit protocol with delegation of commitment . In Proc. of 9th Intl. Conf. on Parallel and Distributed Computing Systems. Citeseer. Y Al-Houmaily and Panos K Chrysanthis. 1996. The implicit-yes vote commit protocol with delegation of commitment. In Proc. of 9th Intl. Conf. on Parallel and Distributed Computing Systems. Citeseer.
3. Bolt-on causal consistency
4. Philip A Bernstein , Vassos Hadzilacos , and Nathan Goodman . 1987. Concurrency control and recovery in database systems . Vol. 370 . Addison-wesley Reading . Philip A Bernstein, Vassos Hadzilacos, and Nathan Goodman. 1987. Concurrency control and recovery in database systems. Vol. 370. Addison-wesley Reading.
5. bitronix authors. 2022. https://github.com/bitronix/btm bitronix authors. 2022. https://github.com/bitronix/btm
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献