On Verifying Causal Consistency
Ahmed Bouajjani, Constantin Enea, Rachid Guerraoui, Jad Hamza
IRIF, Universit´ e Paris Diderot
On Verifying Causal Consistency Ahmed Bouajjani, Constantin Enea, - - PowerPoint PPT Presentation
On Verifying Causal Consistency Ahmed Bouajjani, Constantin Enea, Rachid Guerraoui, Jad Hamza IRIF, Universit e Paris Diderot May 2017 Geo-Replicated Data Structures Strong (sequential) consistency 1 S. Gilbert and N. A. Lynch. Brewers
IRIF, Universit´ e Paris Diderot
1 / 28
1 / 28
1 / 28
1 / 28
2 / 28
2 / 28
2 / 28
3 / 28
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
Causal consistency. ??
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
Causal consistency. ?? Sequential consistency. Undecidable.1
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
Eventual consistency. Decidable.5 Causal consistency. ?? Sequential consistency. Undecidable.1
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
Eventual consistency. Decidable.5 Causal consistency. Undecidable. Sequential consistency. Undecidable.1
3Memory Model-aware Testing. Furbach et al. 2014. 4Model-Checking of Correctness Conditions. Alur et al. 1996. 5On the complexity of linearizability. H. 2015. 6Verifying Eventual Consistency of ORS. Bouajjani et al. 2014.
4 / 28
5 / 28
5 / 28
5 / 28
5 / 28
6 / 28
6 / 28
7 / 28
7 / 28
7 / 28
8 / 28
8 / 28
8 / 28
9 / 28
9 / 28
9 / 28
9 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
program order
10 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
11 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
11 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
11 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
CausalPast(CO, o)
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
CausalPast(CO, o)
12 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
7A comprehensive study of CRDTs. 2011. Shapiro et al. 8Understanding Eventual Consistency. Burckhardt et al. 2013.
13 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
7A comprehensive study of CRDTs. 2011. Shapiro et al. 8Understanding Eventual Consistency. Burckhardt et al. 2013.
13 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
14 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
14 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
15 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
16 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Causal Consistency
Eventual consistency Causal memory Causal convergence Causal consistency Sequential consistency
17 / 28
17 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
18 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
18 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
18 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
18 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
19 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
19 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
19 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
19 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
20 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
20 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
21 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
21 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
21 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
22 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
23 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Data Independent Implementations Bad Patterns
23 / 28
23 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
24 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
24 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
25 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
qb qa p, rd(x) ◮ d site := p var == x p, wr(x, d) var := x site == p
25 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
qb qa p, rd(x) ◮ d site := p var == x p, wr(x, d) var := x site == p
. . . 5 . . . 5
25 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
26 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
26 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
26 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
26 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
27 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
27 / 28
Definitions of Causal Consistency Characterization of Causal Consistency using Bad Patterns Using Bad Patterns for Verification Application to Single-Trace Verification Application to All-Traces Verification
27 / 28
28 / 28
28 / 28
28 / 28
28 / 28
28 / 28
28 / 28
28 / 28