Semantics, Specification, and Bounded Verification of Concurrent Libraries in Replicated Systems

04/21/2020
by   Kartik Nagar, et al.
0

Geo-replicated systems provide a number of desirable properties such as globally low latency, high availability, scalability, and built-in fault tolerance. Unfortunately, programming correct applications on top of such systems has proven to be very challenging, in large part because of the weak consistency guarantees they offer. These complexities are exacerbated when we try to adapt existing highly-performant concurrent libraries developed for shared-memory environments to this setting. The use of these libraries, developed with performance and scalability in mind, is highly desirable. But, identifying a suitable notion of correctness to check their validity under a weakly consistent execution model has not been well-studied, in large part because it is problematic to naively transplant criteria such as linearizability that has a useful interpretation in a shared-memory context to a distributed one where the cost of imposing a (logical) global ordering on all actions is prohibitive. In this paper, we tackle these issues by proposing appropriate semantics and specifications for highly-concurrent libraries in a weakly-consistent, replicated setting. We use these specifications to develop a static analysis framework that can automatically detect correctness violations of library implementations parameterized with respect to the different consistency policies provided by the underlying system. We use our framework to analyze the behavior of a number of highly non-trivial library implementations of stacks, queues, and exchangers. Our results provide the first demonstration that automated correctness checking of concurrent libraries in a weakly geo-replicated setting is both feasible and practical.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/14/2019

Automated Parameterized Verification of CRDTs

Maintaining multiple replicas of data is crucial to achieving scalabilit...
research
11/06/2021

Abstraction for Crash-Resilient Objects (Extended Version)

We study abstraction for crash-resilient concurrent objects using non-vo...
research
06/02/2023

Specifying and Verifying Persistent Libraries

We present a general framework for specifying and verifying persistent l...
research
08/15/2019

CLOTHO: Directed Test Generation for Weakly Consistent Database Systems

Relational database applications are notoriously difficult to test and d...
research
02/28/2019

Fast Concurrent Data Sketches

Data sketches are approximate succinct summaries of long streams. They a...
research
01/22/2018

ACGreGate: A Framework for Practical Access Control for Applications using Weakly Consistent Databases

Scalable and highly available systems often require data stores that off...
research
05/06/2022

ViSearch: Weak Consistency Measurement for Replicated Data Types

Large-scale replicated data type stores often resort to eventual consist...

Please sign up or login with your details

Forgot password? Click here to reset