On Composition and Implementation of Sequential Consistency
Matthieu Perrin, Matoula Petrolia, Achour Mostefaoui (GDD), Claude, Jard

TL;DR
This paper extends the understanding of sequential consistency in distributed systems, showing that waiting is only necessary after certain operations and demonstrating conditions under which sequential consistency is composable in asynchronous crash-prone environments.
Contribution
It introduces a distributed algorithm for sequentially consistent shared memory in asynchronous crash-prone systems and analyzes conditions for its composability.
Findings
Waiting is only needed after read/snapshot operations following a write.
Sequential consistency is composable in round-based algorithms and certain object implementations.
The algorithm works in asynchronous systems with less than half process crashes.
Abstract
To implement a linearizable shared memory in synchronous message-passing systems it is necessary to wait for a time linear to the uncertainty in the latency of the network for both read and write operations. Waiting only for one of them suffices for sequential consistency. This paper extends this result to crash-prone asynchronous systems, proposing a distributed algorithm building a sequentially consistent shared snapshot memory on top of an asynchronous message-passing system where less than half of the processes may crash. We prove that waiting is needed only when a process invokes a read/snapshot right after a write. We also show that sequential consistency is composable in some cases commonly encountered: 1) objects that would be linearizable if they were implemented on top of a linearizable memory become sequentially consistent when implemented on top of a sequential memory while…
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.
