Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Distributed algorithms and protocols
Distributed algorithms and protocols
Maintaining views incrementally
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
ACM Transactions on Computer Systems (TOCS)
Revisiting the PAXOS algorithm
Theoretical Computer Science
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Elements of distributed computing
Elements of distributed computing
Distributed Algorithms
Practical byzantine fault tolerance and proactive recovery
ACM Transactions on Computer Systems (TOCS)
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Notes on Data Base Operating Systems
Operating Systems, An Advanced Course
Incrementalization across object abstraction
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Paxos made live: an engineering perspective
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
Component Specification Using Event Classes
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
The PlusCal Algorithm Language
ICTAC '09 Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing
A language and framework for invariant-driven transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
I do declare: consensus in a logic language
ACM SIGOPS Operating Systems Review
Communication and Agreement Abstractions for Fault-tolerant Asynchronous Distributed Systems
Communication and Agreement Abstractions for Fault-tolerant Asynchronous Distributed Systems
Byzantizing paxos by refinement
DISC'11 Proceedings of the 25th international conference on Distributed computing
From clarity to efficiency for distributed algorithms
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
From clarity to efficiency for distributed algorithms
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
This paper describes a method for specifying complex distributed algorithms at a very high yet executable level, focusing in particular on general principles for making properties and invariants explicit while keeping the control flow clear. This is critical for understanding the algorithms and proving their correctness. It is also critical for generating efficient implementations using invariant-preserving transformations, ensuring the correctness of the optimizations. We have studied and experimented with a variety of important distributed algorithms, including well-known difficult variants of Paxos, by specifying them in a very high-level language with an operational semantics. In the specifications that resulted from following our method, critical properties and invariants are explicit, making the algorithms easier to understand and verify. Indeed, this helped us discover improvements to some of the algorithms, for correctness and for optimizations.