Strongly-Consistent Distributed Discrete-event Systems
Peter Donovan, Erling Jellum, Byeonggil Jun, Hokeun Kim, Edward A. Lee, Shaokai Lin, Marten Lohstroh, Anirudh Rengarajan
TL;DR
The paper tackles the problem of achieving strong consistency in distributed discrete-event systems when zero-delay cycles are present. It introduces a formal coordination model that preserves data-determinism for constructive Lingua Franca programs and extends LF to support ZDCs through a centralized RTI-based coordination strategy. Key contributions include a formal analysis of time and tags, a delay-aware mechanism for earliest future incoming tags, policy and strategy for tag advances, and techniques like MLAA and Total Port Ordering to ensure deadlock-free execution. The implementation demonstrates that removing the zero-delay prohibition incurs only modest overhead, with evaluation on LAN and Wi-Fi showing negligible performance impact. Overall, the work provides a principled, practically viable approach to strongly consistent distributed DE systems with zero-delay cycles, enabling more natural and reliable real-time designs.
Abstract
Discrete-event (DE) systems are concurrent programs where components communicate via tagged events, where tags are drawn from a totally ordered set. Reactors are an emerging model of computation based on DE and realized in the open-source coordination language Lingua Franca. Distributed DE (DDE) systems are DE systems where the components (reactors) communicate over networks. The prior art has required that for DDE systems with cycles, each cycle must contain at least one logical delay, where the tag of events is incremented. Such delays, however, are not required by the elegant fixed-point semantics of DE. The only requirement is that the program be constructive, meaning it is free of causality cycles. This paper gives a way to coordinate the execution of DDE systems that can execute any constructive program, even one with zero-delay cycles. It provides a formal model that exposes exactly the information that must be shared across networks for such execution to be possible. Furthermore, it describes a concrete implementation that is an extension of the coordination mechanisms in Lingua Franca.
