A.M.B.R.O.S.I.A
A.M.B.R.O.S.I.A
复制标题
神的食物
DOI:
10.14778/3377369.3377370
复制
发表时间:
2020
影响因子:
2.5
通讯作者:
Irene Zhang
中科院分区:
文献类型:
--
作者:
J. Goldstein;Ahmed Sayed Abdelhamid;Mike Barnett;S. Burckhardt;Badrish Chandramouli;Darren Gehring;Niel Lebeck;Christopher S. Meiklejohn;U. F. Minhas;Ryan Newton;Rahee Peshawaria;Tal Zaccai;Irene Zhang
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.