JSSST2022 Talk

Posted on September 1, 2022

A Complete Glitch-Free Propagation Algorithm for Distributed Functional Reactive Programming

Ju Guiyuan, Sosuke Moriguchi, Takuo Watanabe
日本ソフトウェア科学会第39回大会, Aug. 31 - Sep. 2, 2022e.

Abstract

Functional reactive programming (FRP) provides a good abstraction for developing reactive programs. Because many distributed applications are reactive, FRP should be beneficial for distributed systems. However, undesirable phenomena called glitches can happen due to the asynchronous nature of distributed systems. A glitch is a temporal inconsistency that can occur in the value propagation in FRP. Many propagation algorithms have been proposed to solve the problem, each with its advantages and disadvantages. This paper presents a new value propagation algorithm for a distributed functional reactive programming language. This algorithm provides a uniform method to guarantee single-source and complete glitch freedom. It performs well without using distributed locking by introducing pulse nodes that effectively act as a global clock. Furthermore, it provides fault tolerance for pulse nodes. We evaluate the performance of the algorithm empirically and compare it with other algorithms in a simulated distributed setting.