Consistency-Aware Scheduling for Weakly Consistent Programs

Share

Maryam Dabaghchian, Zvonimir Rakamaric, Burcu K. Ozkan, Erdal Mutlu, Serdar Tasiran. Java Pathfinder Workshop (JPF 2017), Urbana-Champaign, IL, USA.
[pdf] [bib]

Abstract: Modern geo-replicated data stores provide high availability by relaxing the underlying consistency requirements. Programs layered over such data stores are called weakly consistent programs. Due to the reduced consistency requirements, they exhibit highly nondeterministic behaviors, some of which might violate program invariants. Therefore, implementing correct weakly consistent programs and reasoning about them is challenging. In this paper, we present a systematic scheduling approach that is aware of the underlying consistency model. Our approach dynamically explores all possible program behaviors allowed by the used data store consistency model, and it evaluates program invariants during the exploration. We implement the approach in a prototype model checker for Antidote, which is a causally consistent key-value data store with convergent conflict handling. We evaluate our tool on several benchmarks. The results show that our approach is effective in detecting buggy behaviors in weakly consistent programs.

Bibtex:

@article{jpf2017-dromt,
  author = {Maryam Dabaghchian and Zvonimir Rakamari\'c and
    Burcu K. Ozkan and Erdal Mutlu and Serdar Tasiran},
  title = {Consistency-Aware Scheduling for Weakly Consistent Programs},
  note = {To appear},
}