On the Semantics of Distributed Reactive Programming: The Cost of Consistency

On the Semantics of Distributed Reactive Programming: The Cost of Consistency
复制标题

DOI:
10.1109/tse.2018.2833109
复制
发表时间:
2018-07
影响因子:
7.4
通讯作者:
Alessandro Margara;G. Salvaneschi
Alessandro Margara;G. Salvaneschi
中科院分区:
计算机科学1区
文献类型:
--
作者:
Alessandro Margara;G. Salvaneschi

文献摘要

被引文献

相似文献

反应式编程范式旨在简化反应式系统的开发。它提供了抽象来定义随时间变化的值,这些值由运行时根据它们的依赖关系自动更新。分布式环境中的反应式编程的好处早已被认识到。然而,现有的分布式反应式编程解决方案执行与单个进程相同的语义,引入了通信和同步成本,阻碍了可扩展性。为分布式反应式编程建立合适的抽象需要更深入地研究变化传播的语义。本文采取了一种基本的方法,并定义了精确的传播语义的一致性保证,约束的顺序和隔离的值更新。我们研究的好处和成本,这些一致性保证理论和经验,使用案例研究和合成基准。我们表明,不同的应用程序需要不同程度的一致性,手动实现所需的水平上的中间件,提供了一个较低的取消反应式编程的抽象改进。这激发了一个框架,使开发人员能够为手头的问题选择一致性和开销之间的最佳权衡。为此,我们提出了$\mathsf{DREAM}$,一个分布式的反应式编程中间件,具有灵活的一致性保证。
The reactive programming paradigm aims to simplify the development of reactive systems. It provides abstractions to define time-changing values that are automatically updated by the runtime according to their dependencies. The benefits of reactive programming in distributed settings have been recognized for long. Yet, existing solutions for distributed reactive programming enforce the same semantics as in single processes, introducing communication and synchronization costs that hamper scalability. Establishing suitable abstractions for distributed reactive programming demands for a deeper investigation of the semantics of change propagation. This paper takes a foundational approach and defines precise propagation semantics in terms of consistency guarantees that constrain the order and isolation of value updates. We study the benefits and costs of these consistency guarantees both theoretically and empirically, using case studies and synthetic benchmarks. We show that different applications require different levels of consistency and that manually implementing the required level on a middleware that provides a lower one annuls the abstraction improvements of reactive programming. This motivates a framework that enables the developers to select the best trade-off between consistency and overhead for the problem at hand. To this end, we present $\mathsf{DREAM}$ , a distributed reactive programming middleware with flexible consistency guarantees.