Causing Communication Closure: Safe Program Composition with Reliable Non-FIFO Channels
Kai Engelhardt, Yoram Moses

TL;DR
This paper introduces a semantic framework for safe composition of distributed programs over reliable non-FIFO channels, emphasizing the importance of sealing to ensure communication-closed execution without message overtaking.
Contribution
It defines the concept of sealing for safe program composition in non-FIFO channels and provides algorithms for testing and constructing seals, connecting Lamport causality with composition safety.
Findings
Sealing ensures programs run in isolation as if in a closed environment.
Algorithms are provided for testing and constructing seals efficiently.
Every sealable program with interference on O(n^2) channels can be sealed with O(n) messages.
Abstract
A semantic framework for analyzing safe composition of distributed programs is presented. Its applicability is illustrated by a study of program composition when communication is reliable but not necessarily FIFO\@. In this model, special care must be taken to ensure that messages do not accidentally overtake one another in the composed program. We show that barriers do not exist in this model. Indeed, no program that sends or receives messages can automatically be composed with arbitrary programs without jeopardizing their intended behavior. Safety of composition becomes context-sensitive and new tools are needed for ensuring it. A notion of \emph{sealing} is defined, where if a program is immediately followed by a program that seals then will be communication-closed--it will execute as if it runs in isolation. The investigation of sealing in this model reveals a novel…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
