{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,4]],"date-time":"2025-05-04T02:07:17Z","timestamp":1746324437611},"reference-count":42,"publisher":"Association for Computing Machinery (ACM)","issue":"5","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2020,1]]},"abstract":"<jats:p>When writing today's distributed programs, which frequently span both devices and cloud services, programmers are faced with complex decisions and coding tasks around coping with failure, especially when these distributed components are stateful. If their application can be cast as pure data processing, they benefit from the past 40--50 years of work from the database community, which has shown how declarative database systems can completely isolate the developer from the possibility of failure in a performant manner. Unfortunately, while there have been some attempts at bringing similar functionality into the more general distributed programming space, a compelling general-purpose system must handle non-determinism, be performant, support a variety of machine types with varying resiliency goals, and be language agnostic, allowing distributed components written in different languages to communicate. This paper introduces Ambrosia, the first system to satisfy all these requirements. We coin the term \"virtual resiliency\", analogous to virtual memory, for the platform feature which allows failure oblivious code to run in a failure resilient manner. We also introduce novel programming language constructs for resiliently handling non-determinism. Of further interest is the effective reapplication of much database performance optimization technology to make Ambrosia more performant than many of today's non-resilient cloud solutions.<\/jats:p>","DOI":"10.14778\/3377369.3377370","type":"journal-article","created":{"date-parts":[[2020,2,19]],"date-time":"2020-02-19T18:58:53Z","timestamp":1582138733000},"page":"588-601","source":"Crossref","is-referenced-by-count":12,"title":["A.M.B.R.O.S.I.A"],"prefix":"10.14778","volume":"13","author":[{"given":"Jonathan","family":"Goldstein","sequence":"first","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ahmed","family":"Abdelhamid","sequence":"additional","affiliation":[{"name":"Purdue University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mike","family":"Barnett","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sebastian","family":"Burckhardt","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Badrish","family":"Chandramouli","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Darren","family":"Gehring","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Niel","family":"Lebeck","sequence":"additional","affiliation":[{"name":"University of Washington"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christopher","family":"Meiklejohn","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Umar Farooq","family":"Minhas","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ryan","family":"Newton","sequence":"additional","affiliation":[{"name":"Indiana University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Rahee Ghosh","family":"Peshawaria","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tal","family":"Zaccai","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Irene","family":"Zhang","sequence":"additional","affiliation":[{"name":"Microsoft"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,2,19]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"David B. Lomet. Phoenix: Making Applications Robust. SIGMOD Conference 1999: 562--564","author":"Barga Roger S.","unstructured":"Roger S. Barga , David B. Lomet. Phoenix: Making Applications Robust. SIGMOD Conference 1999: 562--564 Roger S. Barga, David B. Lomet. Phoenix: Making Applications Robust. SIGMOD Conference 1999: 562--564"},{"key":"e_1_2_1_2_1","volume-title":"Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI Conference 2004: 137--150","author":"Dean Jeffrey","unstructured":"Jeffrey Dean , Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI Conference 2004: 137--150 Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI Conference 2004: 137--150"},{"key":"e_1_2_1_3_1","volume-title":"Scott Shenker","author":"Zaharia Matei","year":"2010","unstructured":"Matei Zaharia , Mosharaf Chowdhury , Michael J. Franklin , Scott Shenker , Ion Stoica : Spark: Cluster Computing with Working Sets. HotCloud 2010 Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, Ion Stoica: Spark: Cluster Computing with Working Sets. HotCloud 2010"},{"key":"e_1_2_1_4_1","volume-title":"Henry M. Levy: Customizable and Extensible Deployment for Mobile\/Cloud Applications. OSDI 2014: 97--112","author":"Zhang Irene","unstructured":"Irene Zhang , Adriana Szekeres , Dana Van Aken , Isaac Ackerman , Steven D. Gribble , Arvind Krishnamurthy , Henry M. Levy: Customizable and Extensible Deployment for Mobile\/Cloud Applications. OSDI 2014: 97--112 Irene Zhang, Adriana Szekeres, Dana Van Aken, Isaac Ackerman, Steven D. Gribble, Arvind Krishnamurthy, Henry M. Levy: Customizable and Extensible Deployment for Mobile\/Cloud Applications. OSDI 2014: 97--112"},{"issue":"4","key":"e_1_2_1_5_1","first-page":"28","volume":"5","author":"Haas Laura M.","year":"1982","unstructured":"Laura M. Haas , Patricia G. Selinger , Elisa Bertino , Dean Daniels , Bruce G. Lindsay , Guy M. Lohman , Yoshifumi Masunaga , C. Mohan , Pui Ng , Paul F. Wilms , Robert A. Yost: R*: A Research Project on Distributed Relational DBMS. IEEE Database Eng. Bull. 5 ( 4 ): 28 -- 32 ( 1982 ) Laura M. Haas, Patricia G. Selinger, Elisa Bertino, Dean Daniels, Bruce G. Lindsay, Guy M. Lohman, Yoshifumi Masunaga, C. Mohan, Pui Ng, Paul F. Wilms, Robert A. Yost: R*: A Research Project on Distributed Relational DBMS. IEEE Database Eng. Bull. 5(4): 28--32 (1982)","journal-title":"IEEE Database Eng. Bull."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/568522.568525"},{"key":"e_1_2_1_7_1","volume-title":"Distributed and Parallel Databases 1(1)","year":"1993","unstructured":"Wilschut, A., and Apers, P .: Dataflow Query Execution in a Parallel Main-memory Environment . In Distributed and Parallel Databases 1(1) , 1993 . Wilschut, A., and Apers, P.: Dataflow Query Execution in a Parallel Main-memory Environment. In Distributed and Parallel Databases 1(1), 1993."},{"issue":"4","key":"e_1_2_1_8_1","first-page":"51","volume":"38","author":"Chandramouli Badrish","year":"2015","unstructured":"Badrish Chandramouli , Jonathan Goldstein , Mike Barnett , James F. Terwilliger: Trill: Engineering a Library for Diverse Analytics. IEEE Data Eng. Bull. 38 ( 4 ): 51 -- 60 ( 2015 ) Badrish Chandramouli, Jonathan Goldstein, Mike Barnett, James F. Terwilliger: Trill: Engineering a Library for Diverse Analytics. IEEE Data Eng. Bull. 38(4): 51--60 (2015)","journal-title":"Diverse Analytics. IEEE Data Eng. Bull."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/s007780050033"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924957"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924956"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508256"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043587"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535842"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/MIC.2016.108"},{"issue":"14","key":"e_1_2_1_17_1","first-page":"1623","volume":"9","author":"Chandramouli Badrish","year":"2016","unstructured":"Badrish Chandramouli , Raul Castro Fernandez , Jonathan Goldstein , Ahmed Eldawy , Abdul Quamar: Quill: Efficient , Transferable, and Rich Analytics at Scale. PVLDB 9 ( 14 ): 1623 -- 1634 ( 2016 ) Badrish Chandramouli, Raul Castro Fernandez, Jonathan Goldstein, Ahmed Eldawy, Abdul Quamar: Quill: Efficient, Transferable, and Rich Analytics at Scale. PVLDB 9(14): 1623--1634 (2016)","journal-title":"Scale. PVLDB"},{"issue":"10","key":"e_1_2_1_18_1","first-page":"877","volume":"6","author":"Levandoski Justin J.","year":"2013","unstructured":"Justin J. Levandoski , David B. Lomet , Sudipta Sengupta: LLAMA: A Cache\/ Storage Subsystem for Modern Hardware. PVLDB 6 ( 10 ): 877 -- 888 ( 2013 ) Justin J. Levandoski, David B. Lomet, Sudipta Sengupta: LLAMA: A Cache\/Storage Subsystem for Modern Hardware. PVLDB 6(10): 877--888 (2013)","journal-title":"Modern Hardware. PVLDB"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/602259.602261"},{"key":"e_1_2_1_20_1","volume-title":"Umar F. Minhas. CRA: Enabling Data-Intensive Applications in Containerized Environments. In ICDE Conference","author":"Sabek Ibrahim","year":"2019","unstructured":"Ibrahim Sabek , Badrish Chandramouli , Umar F. Minhas. CRA: Enabling Data-Intensive Applications in Containerized Environments. In ICDE Conference , 2019 . https:\/\/github.com\/microsoft\/CRA. Ibrahim Sabek, Badrish Chandramouli, Umar F. Minhas. CRA: Enabling Data-Intensive Applications in Containerized Environments. In ICDE Conference, 2019. https:\/\/github.com\/microsoft\/CRA."},{"issue":"5","key":"e_1_2_1_21_1","first-page":"505","volume":"10","author":"Chandramouli Badrish","year":"2017","unstructured":"Badrish Chandramouli , Jonathan Goldstein: Shrink - Prescribing Resiliency Solutions for Streaming. PVLDB 10 ( 5 ): 505 -- 516 ( 2017 ). Badrish Chandramouli, Jonathan Goldstein: Shrink - Prescribing Resiliency Solutions for Streaming. PVLDB 10(5): 505--516 (2017).","journal-title":"Streaming. PVLDB"},{"key":"e_1_2_1_22_1","unstructured":"gRPC Benchmarking. http:\/\/grpc.io\/docs\/guides\/benchmarking.html  gRPC Benchmarking. http:\/\/grpc.io\/docs\/guides\/benchmarking.html"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660209"},{"key":"e_1_2_1_24_1","unstructured":"Azure Storage. https:\/\/azure.microsoft.com\/en-us\/product-categories\/storage\/  Azure Storage. https:\/\/azure.microsoft.com\/en-us\/product-categories\/storage\/"},{"key":"e_1_2_1_25_1","unstructured":"Data Contracts. https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/wcf\/feature-details\/using-data-contracts  Data Contracts. https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/wcf\/feature-details\/using-data-contracts"},{"key":"e_1_2_1_26_1","unstructured":"Protocol Buffers. https:\/\/developers.google.com\/protocol-buffers\/  Protocol Buffers. https:\/\/developers.google.com\/protocol-buffers\/"},{"key":"e_1_2_1_27_1","unstructured":"Avro. https:\/\/avro.apache.org\/  Avro. https:\/\/avro.apache.org\/"},{"key":"e_1_2_1_28_1","unstructured":"JSON. http:\/\/json.org\/  JSON. http:\/\/json.org\/"},{"key":"e_1_2_1_29_1","unstructured":"A.M.B.R.O.S.I.A. https:\/\/github.com\/microsoft\/AMBROSIA  A.M.B.R.O.S.I.A. https:\/\/github.com\/microsoft\/AMBROSIA"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1013202.1013205"},{"key":"e_1_2_1_31_1","unstructured":"AWS Cost Calculator. https:\/\/calculator.s3.amazonaws.com\/index.html.  AWS Cost Calculator. https:\/\/calculator.s3.amazonaws.com\/index.html."},{"key":"e_1_2_1_32_1","volume-title":"ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17, 1 (March","author":"Mohan C.","year":"1992","unstructured":"C. Mohan , Don Haderle , Bruce Lindsay , Hamid Pirahesh , and Peter Schwarz . 1992. ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17, 1 (March 1992 ), 94--162 C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz. 1992. ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17, 1 (March 1992), 94--162"},{"key":"e_1_2_1_33_1","volume-title":"ICDE 2014: 604--615","author":"Malviya Nirmesh","unstructured":"Nirmesh Malviya , Ariel Weisberg , Samuel Madden , Michael Stonebraker : Rethinking main memory OLTP recovery . ICDE 2014: 604--615 Nirmesh Malviya, Ariel Weisberg, Samuel Madden, Michael Stonebraker: Rethinking main memory OLTP recovery. ICDE 2014: 604--615"},{"key":"e_1_2_1_34_1","unstructured":"Erlang Programming Language. http:\/\/www.erlang.org\/  Erlang Programming Language. http:\/\/www.erlang.org\/"},{"key":"e_1_2_1_35_1","volume-title":"University of Texas at Austin","author":"Kapritsos Manos","year":"2012","unstructured":"Manos Kapritsos and Yang Wang , University of Texas at Austin ; Vivien Quema, Grenoble INP; Allen Clement, MPI-SWS; Lorenzo Alvisi and Mike Dahlin, University of Texas at Austin. All about Eve : Execute-Verify Replication for Multi-Core Servers . OSDI, 2012 Manos Kapritsos and Yang Wang, University of Texas at Austin; Vivien Quema, Grenoble INP; Allen Clement, MPI-SWS; Lorenzo Alvisi and Mike Dahlin, University of Texas at Austin. All about Eve: Execute-Verify Replication for Multi-Core Servers. OSDI, 2012"},{"key":"e_1_2_1_36_1","volume-title":"Junfeng Yang. PAXOS Made Transparent. SOSP 2015","author":"Cui Heming","unstructured":"Heming Cui , Rui Gu , Cheng Liu , Tianyu Chenx , and Junfeng Yang. PAXOS Made Transparent. SOSP 2015 Heming Cui, Rui Gu, Cheng Liu, Tianyu Chenx, and Junfeng Yang. PAXOS Made Transparent. SOSP 2015"},{"key":"e_1_2_1_37_1","volume-title":"NSDI 2008","author":"Cully Brendan","unstructured":"Brendan Cully , Geoffrey Lefebvre , Dutch Meyer , Mike Feeley , Norm Hutchinson , and Andrew Warfield . Remus : High Availability via Asynchronous Virtual Machine Replication . NSDI 2008 Brendan Cully, Geoffrey Lefebvre, Dutch Meyer, Mike Feeley, Norm Hutchinson, and Andrew Warfield. Remus: High Availability via Asynchronous Virtual Machine Replication. NSDI 2008"},{"key":"e_1_2_1_38_1","doi-asserted-by":"crossref","unstructured":"George W. Dunlap Dominic G. Lucchetti Peter M. Chen Michael Fetterman. Execution Replay for Multiprocessor Virtual Machines. ACM VEE 2008  George W. Dunlap Dominic G. Lucchetti Peter M. Chen Michael Fetterman. Execution Replay for Multiprocessor Virtual Machines. ACM VEE 2008","DOI":"10.1145\/1346256.1346273"},{"key":"e_1_2_1_39_1","volume-title":"Chen Yu. Live Migration of Virtual Machine Based on Full System Trace and Replay. HPDC 2009","author":"Liu Haikun","unstructured":"Haikun Liu , Hai Jin , Xiaofei Liao , Liting Hu , Chen Yu. Live Migration of Virtual Machine Based on Full System Trace and Replay. HPDC 2009 Haikun Liu, Hai Jin, Xiaofei Liao, Liting Hu, Chen Yu. Live Migration of Virtual Machine Based on Full System Trace and Replay. HPDC 2009"},{"key":"e_1_2_1_40_1","unstructured":"Ambrosia Technical Report. https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-m-b-r-o-s-i-a-providing-performant-virtual-resiliency-for-distributed-applications\/  Ambrosia Technical Report. https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-m-b-r-o-s-i-a-providing-performant-virtual-resiliency-for-distributed-applications\/"},{"key":"e_1_2_1_41_1","volume-title":"ACM","author":"Marcos Antonio Vaz Salles Vivek","year":"2018","unstructured":"Shah, Vivek and Marcos Antonio Vaz Salles . \"Reactors : A case for predictable, virtualized actor database systems.\" Proceedings of the 2018 International Conference on Management of Data . ACM , 2018 . Shah, Vivek and Marcos Antonio Vaz Salles. \"Reactors: A case for predictable, virtualized actor database systems.\" Proceedings of the 2018 International Conference on Management of Data. ACM, 2018."},{"key":"e_1_2_1_42_1","first-page":"113","volume":"200","year":"2009","unstructured":"Alvaro, Peter, \"BOOM: Data-centric programming in the datacenter.\" EECS Department, University of California, Berkeley, Tech. Rep. UCB\/EECS- 200 9- 113 ( 2009 ). Alvaro, Peter, et al. \"BOOM: Data-centric programming in the datacenter.\" EECS Department, University of California, Berkeley, Tech. Rep. UCB\/EECS-2009-113 (2009).","journal-title":"Rep. UCB\/EECS-"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3377369.3377370","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:31:08Z","timestamp":1672219868000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3377369.3377370"}},"subtitle":["providing performant virtual resiliency for distributed applications"],"short-title":[],"issued":{"date-parts":[[2020,1]]},"references-count":42,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["10.14778\/3377369.3377370"],"URL":"https:\/\/doi.org\/10.14778\/3377369.3377370","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2020,1]]}}}