2012
DOI: 10.1007/978-3-642-33536-5_11
|View full text |Cite
|
Sign up to set email alerts
|

High-Level Executable Specifications of Distributed Algorithms

Abstract: Abstract. 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 experimente… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2012
2012
2021
2021

Publication Types

Select...
2
2
1

Relationship

3
2

Authors

Journals

citations
Cited by 10 publications
(3 citation statements)
references
References 20 publications
0
3
0
Order By: Relevance
“…Programming distributed algorithms at a high level has also allowed us to discover several improvements to correctness and efficiency aspects of some of the algorithms [55]. For example, in the pseudocode for multi-Paxos [82], in process Commander, waiting for p2b messages containing ballot b from a majority of acceptors is expressed by starting with a waitfor set initialized to acceptors and then, in a for ever loop, repeatedly updating waitfor and testing |waitfor| < |acceptors|/2 as each p2b message containing ballot b arrives.…”
Section: Implementation and Experimentsmentioning
confidence: 99%
“…Programming distributed algorithms at a high level has also allowed us to discover several improvements to correctness and efficiency aspects of some of the algorithms [55]. For example, in the pseudocode for multi-Paxos [82], in process Commander, waiting for p2b messages containing ballot b from a majority of acceptors is expressed by starting with a waitfor set initialized to acceptors and then, in a for ever loop, repeatedly updating waitfor and testing |waitfor| < |acceptors|/2 as each p2b message containing ballot b arrives.…”
Section: Implementation and Experimentsmentioning
confidence: 99%
“…Being able to express synchronization conditions using high-level quantifications and apply incrementalization also allowed us to uncover errors in our initial DistAlgo programs that subconsciously used extensive message handlers to do ad hoc incremental updates. It also helped us discover improvements to some of the algorithms, for correctness and for efficiency [42], such as the simplifications that led to the algorithm in Figure 4.…”
Section: Implementation and Experimentsmentioning
confidence: 99%
“…We have developed IncOQ, a prototype implementation of the method, and used it to experiment with complex queries from a variety of applications, including those from the most relevant previous work [13,28,47,54,55] and from new applications in distributed algorithms [29,30] and probabilistic queries [4,34,35]. Our evaluations consider all important factors: asymptotic time and space complexities, constant-factor optimizations, demand set size, query-update ratio, auxiliary indices, runtime overhead, demand propagation strategies, and transformation time and other characteristics.…”
Section: Introductionmentioning
confidence: 99%