2017
DOI: 10.1145/3133934
|View full text |Cite
|
Sign up to set email alerts
|

Verifying distributed programs via canonical sequentialization

Abstract: We introduce canonical sequentialization, a new approach to verifying unbounded, asynchronous, messagepassing programs at compile-time. Our approach builds upon the following observation: due the combinatorial explosion in complexity, programmers do not reason about their systems by case-splitting over all the possible execution orders. Instead, correct programs tend to be well-structured so that the programmer can reason about a small number of representative executions, which we call the program's canonical … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
23
0

Year Published

2019
2019
2020
2020

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 26 publications
(23 citation statements)
references
References 58 publications
0
23
0
Order By: Relevance
“…Verification. There is a large body of work on verification, testing, and modular programming for distributed systems and algorithms (e.g., [Bakst et al 2017;Chajed et al 2018;Desai et al 2018;Drăgoi et al 2016;Gomes et al 2017;Guha et al 2013;Hawblitzel et al 2015;Sergey et al 2017;Wilcox et al 2015]). The serverless computation model is more constrained than arbitrary distributed systems and algorithms.…”
Section: Related Workmentioning
confidence: 99%
“…Verification. There is a large body of work on verification, testing, and modular programming for distributed systems and algorithms (e.g., [Bakst et al 2017;Chajed et al 2018;Desai et al 2018;Drăgoi et al 2016;Gomes et al 2017;Guha et al 2013;Hawblitzel et al 2015;Sergey et al 2017;Wilcox et al 2015]). The serverless computation model is more constrained than arbitrary distributed systems and algorithms.…”
Section: Related Workmentioning
confidence: 99%
“…For each value of rd , to compute the code of round , we consider each path π in the control flow graph of the loop's body and we identify (1) a block of instructions (possibly empty) B π : a sequence of instruction in π that starts with rd = and ends with the instructions preceding the next assignment to rd ; (2) the context under which each block B π is executed, that is a condition cond π that is the conjunction of all the branches leading to rd = on the path π. The B is the sequential composition of all if (cond π ) B π with π path in the control flow.…”
Section: Code To Code Rewriting Of Asynchronous To Comphomentioning
confidence: 99%
“…Our research belongs to an effort to develop techniques for automated reduction to synchronized executions. Three concurrent approaches in this quest are the exciting results in [5], [26] and [2,21]. Compared to their work, our approach is less guided by specific communication patterns of existing systems.…”
Section: Related Workmentioning
confidence: 99%
“…Approximation-Aware Canonical Sequentialization. Our safety and accuracy analyses rest on the recently proposed approach for canonical sequentialization of parallel programs [Bakst et al 2017]. This approach statically verifies concurrency properties of asynchronous message passing programs (with simple send and receive primitives) by exploiting the symmetric nondeterminism of well-structured parallel programs.…”
Section: Introductionmentioning
confidence: 99%