{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,7]],"date-time":"2026-03-07T19:59:13Z","timestamp":1772913553012,"version":"3.50.1"},"reference-count":34,"publisher":"Association for Computing Machinery (ACM)","issue":"11","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2023,7]]},"abstract":"<jats:p>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 &lt;10% compared to a non-transactional baseline on read-mostly microservice workloads and 72% on write-heavy workloads.<\/jats:p>","DOI":"10.14778\/3611479.3611484","type":"journal-article","created":{"date-parts":[[2023,8,25]],"date-time":"2023-08-25T02:08:08Z","timestamp":1692929288000},"page":"2742-2754","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":16,"title":["Epoxy: ACID Transactions across Diverse Data Stores"],"prefix":"10.14778","volume":"16","author":[{"given":"Peter","family":"Kraft","sequence":"first","affiliation":[{"name":"Stanford University"}]},{"given":"Qian","family":"Li","sequence":"additional","affiliation":[{"name":"Stanford University"}]},{"given":"Xinjing","family":"Zhou","sequence":"additional","affiliation":[{"name":"MIT"}]},{"given":"Peter","family":"Bailis","sequence":"additional","affiliation":[{"name":"Stanford University"}]},{"given":"Michael","family":"Stonebraker","sequence":"additional","affiliation":[{"name":"MIT"}]},{"given":"Matei","family":"Zaharia","sequence":"additional","affiliation":[{"name":"Stanford University"}]},{"given":"Xiangyao","family":"Yu","sequence":"additional","affiliation":[{"name":"University of Wisconsin"}]}],"member":"320","published-online":{"date-parts":[[2023,8,24]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPADS.1998.741040"},{"key":"e_1_2_1_3_1","volume-title":"Proc. of 9th Intl. Conf. on Parallel and Distributed Computing Systems. Citeseer.","author":"Al-Houmaily Y","year":"1996","unstructured":"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."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463676.2465279"},{"key":"e_1_2_1_5_1","volume-title":"Concurrency control and recovery in database systems","author":"Bernstein Philip A","unstructured":"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."},{"key":"e_1_2_1_6_1","unstructured":"bitronix authors. 2022. https:\/\/github.com\/bitronix\/btm  bitronix authors. 2022. https:\/\/github.com\/bitronix\/btm"},{"key":"e_1_2_1_7_1","doi-asserted-by":"crossref","unstructured":"Yuri Breitbart Hector Garcia-Molina and Avi Silberschatz. 1992. Overview of Multidatabase Transaction Management. In VLDB Journal 1. 181--239.  Yuri Breitbart Hector Garcia-Molina and Avi Silberschatz. 1992. Overview of Multidatabase Transaction Management. In VLDB Journal 1. 181--239.","DOI":"10.1007\/BF01231700"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376691"},{"key":"e_1_2_1_9_1","volume-title":"C-JDBC: Flexible Database Clustering Middleware. In USENIX Annual Technical Conference.","author":"Cecchet Emmanuel","year":"2004","unstructured":"Emmanuel Cecchet , Marguerite Julie , and Willy Zwaenepoel . 2004 . C-JDBC: Flexible Database Clustering Middleware. In USENIX Annual Technical Conference. Emmanuel Cecchet, Marguerite Julie, and Willy Zwaenepoel. 2004. C-JDBC: Flexible Database Clustering Middleware. In USENIX Annual Technical Conference."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1365815.1365816"},{"key":"e_1_2_1_11_1","unstructured":"Transaction Processing Performance Council. 2005. Transaction processing performance council. Web Site http:\/\/www.tpc.org (2005).  Transaction Processing Performance Council. 2005. Transaction processing performance council. Web Site http:\/\/www.tpc.org (2005)."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2015.7113278"},{"key":"e_1_2_1_13_1","volume-title":"Ana Nunes Alonso, and Ricardo Vila\u00e7a","author":"Faria Nuno","year":"2021","unstructured":"Nuno Faria , Jos\u00e9 Pereira , Ana Nunes Alonso, and Ricardo Vila\u00e7a . 2021 . Towards Generic Fine-Grained Transaction Isolation in Polystores. In Heterogeneous Data Management, Polystores, and Analytics for Healthcare. Springer International Publishing , Cham, 29--42. Nuno Faria, Jos\u00e9 Pereira, Ana Nunes Alonso, and Ricardo Vila\u00e7a. 2021. Towards Generic Fine-Grained Transaction Isolation in Polystores. In Heterogeneous Data Management, Polystores, and Analytics for Healthcare. Springer International Publishing, Cham, 29--42."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1991.131479"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2014.6816691"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/191839.191986"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.14778\/3484224.3484232"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.14778\/2095686.2095689"},{"key":"e_1_2_1_19_1","volume-title":"High Performance Transactions in Deuteronomy. In Conference on Innovative Data Systems Research (CIDR","author":"Levandoski Justin","year":"2015","unstructured":"Justin Levandoski , David Lomet , Sudipta Sengupta , Ryan Stutsman , and Rui Wang . 2015 . High Performance Transactions in Deuteronomy. In Conference on Innovative Data Systems Research (CIDR 2015). https:\/\/www.microsoft.com\/en-us\/research\/publication\/high-performance-transactions-in-deuteronomy\/ Justin Levandoski, David Lomet, Sudipta Sengupta, Ryan Stutsman, and Rui Wang. 2015. High Performance Transactions in Deuteronomy. In Conference on Innovative Data Systems Research (CIDR 2015). https:\/\/www.microsoft.com\/en-us\/research\/publication\/high-performance-transactions-in-deuteronomy\/"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1066157.1066205"},{"key":"e_1_2_1_21_1","unstructured":"Oasis. 2009. Web Services Atomic Transaction (WS-AtomicTransaction). https:\/\/docs.oasis-open.org\/ws-tx\/wsat\/2006\/06  Oasis. 2009. Web Services Atomic Transaction (WS-AtomicTransaction). https:\/\/docs.oasis-open.org\/ws-tx\/wsat\/2006\/06"},{"key":"e_1_2_1_22_1","unstructured":"Oracle. 2022. Java Transaction API (JTA). https:\/\/www.oracle.com\/java\/technologies\/jta.html  Oracle. 2022. Java Transaction API (JTA). https:\/\/www.oracle.com\/java\/technologies\/jta.html"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1113574.1113576"},{"key":"e_1_2_1_24_1","volume-title":"9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 10)","author":"Peng Daniel","year":"2010","unstructured":"Daniel Peng and Frank Dabek . 2010 . Large-scale incremental processing using distributed transactions and notifications . In 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 10) . Daniel Peng and Frank Dabek. 2010. Large-scale incremental processing using distributed transactions and notifications. In 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 10)."},{"key":"e_1_2_1_25_1","unstructured":"Postgres. 2022. System Information Functions and Operators. https:\/\/www.postgresql.org\/docs\/current\/functions-info.html  Postgres. 2022. System Information Functions and Operators. https:\/\/www.postgresql.org\/docs\/current\/functions-info.html"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.1988.105502"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/96602.96604"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01264014"},{"key":"e_1_2_1_29_1","unstructured":"Michael Stonebraker. 2015. The Case for Polystores. https:\/\/wp.sigmod.org\/?p=1629  Michael Stonebraker. 2015. The Case for Polystores. https:\/\/wp.sigmod.org\/?p=1629"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/BigData.2017.8258302"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3514221.3526120"},{"key":"e_1_2_1_32_1","volume-title":"Heterogeneous Data Management, Polystores, and Analytics for Healthcare","author":"Vogt Marco","unstructured":"Marco Vogt , Nils Hansen , Jan Sch\u00f6nholz , David Lengweiler , Isabel Geissmann , Sebastian Philipp , Alexander Stiemer , and Heiko Schuldt . 2021. Polypheny-DB: Towards Bridging the Gap Between Polystores and HTAP Systems . In Heterogeneous Data Management, Polystores, and Analytics for Healthcare . Springer International Publishing , Cham , 25--36. Marco Vogt, Nils Hansen, Jan Sch\u00f6nholz, David Lengweiler, Isabel Geissmann, Sebastian Philipp, Alexander Stiemer, and Heiko Schuldt. 2021. Polypheny-DB: Towards Bridging the Gap Between Polystores and HTAP Systems. In Heterogeneous Data Management, Polystores, and Analytics for Healthcare. Springer International Publishing, Cham, 25--36."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.14778\/3067421.3067427"},{"key":"e_1_2_1_34_1","unstructured":"X\/Open. 1991. Distributed Transaction Processing: The XA Specification.  X\/Open. 1991. Distributed Transaction Processing: The XA Specification."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3514221.3526171"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3611479.3611484","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,23]],"date-time":"2023-09-23T22:17:38Z","timestamp":1695507458000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3611479.3611484"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7]]},"references-count":34,"journal-issue":{"issue":"11","published-print":{"date-parts":[[2023,7]]}},"alternative-id":["10.14778\/3611479.3611484"],"URL":"https:\/\/doi.org\/10.14778\/3611479.3611484","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2023,7]]},"assertion":[{"value":"2023-08-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}