Exploiting virtual synchrony in distributed systems
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Preserving and using context information in interprocess communication
ACM Transactions on Computer Systems (TOCS)
Distributed systems
Design and validation of computer protocols
Design and validation of computer protocols
An evaluation framework for Multicast Ordering Protocols
SIGCOMM '92 Conference proceedings on Communications architectures & protocols
Distributed process groups in the V Kernel
ACM Transactions on Computer Systems (TOCS)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Broadcast Protocols for Distributed Systems
IEEE Transactions on Parallel and Distributed Systems
A Fault-Tolerant Protocol for Atomic Broadcast
IEEE Transactions on Parallel and Distributed Systems
Hi-index | 0.00 |
The complexity and efficiency aspects of a distributed application protocol (e.g., replicated data access) are often intertwined with the application-specific communication requirements between protocol entities and the underlying primitives for message broadcasting. For instance, the choice between recovery by application from a mis-ordered message delivery versus providing message ordering property in the communication layer (CL) is based on tradeoffs between protocol complexity and efficiency. The paper systematically analyzes these tradeoffs with respect to message ordering and atomicity properties in broadcast communication. Enforcing these properties in the CL leads to uniform communication structure of applications; however, the CL incurs message and execution time overhead due to extensive communication state (e.g., message buffering). When these properties are not supported by CL but are required for an application, mechanisms to enforce it are built into the application protocol, thereby increasing complexity in the protocol structure. Detailed examples of applications are given to illustrate these tradeoffs. The analysis is useful in designing communication primitives and application protocols for distributed systems.