Distributed computing: models and methods
Handbook of theoretical computer science (vol. B)
Stabilizing Communication Protocols
IEEE Transactions on Computers - Special issue on protocol engineering
The causal ordering abstraction and a simple way to implement it
Information Processing Letters
Causal delivery of messages with real-time data in unreliable networks
Real-Time Systems
The Timed Asynchronous Distributed System Model
IEEE Transactions on Parallel and Distributed Systems
Efficient atomic broadcast using deterministic merge
Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Self-stabilizing systems in spite of distributed control
Communications of the ACM
IEEE Transactions on Computers
The Timely Computing Base Model and Architecture
IEEE Transactions on Computers
A New Algorithm to Implement Causal Ordering
Proceedings of the 3rd International Workshop on Distributed Algorithms
Stabilizing Causal Deterministic Merge
WSS '01 Proceedings of the 5th International Workshop on Self-Stabilizing Systems
Real-time causal message ordering in multimedia systems
ICDCS '95 Proceedings of the 15th International Conference on Distributed Computing Systems
Hi-index | 0.00 |
In this paper, we focus on causal deterministic merge -- that combines causal delivery and uniform total order -- in semi-synchronous publish-subscribe systems that provide simple guarantees related to clock values and message delays. We consider two properties of the timestamps used to obtain causal deterministic merge: (1) they should be bounded, i.e., for a given system, the maximum size of the timestamp should be independent of the length of the computation, and (2) they should be scalar, i.e., the time required to compare/update timestamps should be independent of the size of the system. By making certain assumptions about how the timestamps are compared, we show that it is impossible to obtain a solution that uses scalar and bounded timestamps. Hence, we focus on solutions that achieve one of these properties. We present two solutions where the size of the timestamps is bounded; the size of the timestamps in the first solution is logarithmic in the number of processes whereas in the second solution, it is linear in the number of processes. We also present a solution where the timestamp consists of O(1) integers that can grow unbounded; we further show that the timestamps in this solution can be bounded if the application provides a simple guarantee about event creation. Each of these solutions is stabilizing fault-tolerant in that even if the system is perturbed by faults that improperly initialize processes, lose/corrupt messages and temporarily violate system guarantees, the system recovers to states from where subsequent computation satisfies the requirements of causal deterministic merge. Our solutions improve previously known solutions in several ways: In previous solutions, the timestamps consist of O(n2) unbounded integers where n is the number of processes. By contrast, one of our solutions uses O(1) unbounded integers and the remaining three solutions use bounded integers.