scispace - formally typeset
Open AccessPosted Content

CLOTHO: Directed Test Generation for Weakly Consistent Database Systems.

Reads0
Chats0
TLDR
ClOTHO as mentioned in this paper is a tool that combines a static analyzer and a model checker to generate abstract executions, discover serializability violations in these executions, and translate them back into concrete test inputs suitable for deployment in a test environment.
Abstract
Relational database applications are notoriously difficult to test and debug. Concurrent execution of database transactions may violate complex structural invariants that constraint how changes to the contents of one (shared) table affect the contents of another. Simplifying the underlying concurrency model is one way to ameliorate the difficulty of understanding how concurrent accesses and updates can affect database state with respect to these sophisticated properties. Enforcing serializable execution of all transactions achieves this simplification, but it comes at a significant price in performance, especially at scale, where database state is often replicated to improve latency and availability. To address these challenges, this paper presents a novel testing framework for detecting serializability violations in (SQL) database-backed Java applications executing on weakly-consistent storage systems. We manifest our approach in a tool named CLOTHO, that combines a static analyzer and a model checker to generate abstract executions, discover serializability violations in these executions, and translate them back into concrete test inputs suitable for deployment in a test environment. To the best of our knowledge, CLOTHO is the first automated test generation facility for identifying serializability anomalies of Java applications intended to operate in geo-replicated distributed environments. An experimental evaluation on a set of industry-standard benchmarks demonstrates the utility of our approach.

read more

Citations
More filters
Proceedings Article

Cobra: Making transactional key-value stores verifiably serializable

TL;DR: Cobra is the first system that combines black-box checking, of (b) serializability, while (c) scaling to real-world online transactional processing workloads, and introduces several new techniques, including a new encoding of the validity condition.
Proceedings ArticleDOI

King louie: reproducible availability benchmarking of cloud-hosted DBMS

TL;DR: A novel framework that automates the full evaluation process, including the failure injection, and emphasizes reproducibility is introduced that shows that distributed DBMS are not necessary available even if sufficient replicas are available and clients can experience significant downtimes.
Proceedings ArticleDOI

Differentially Testing Database Transactions for Fun and Profit

TL;DR: DT2 as mentioned in this paper is an approach for automatically testing transaction implementations in DBMSs, which can support complex features, e.g., various database schemas and cross-table queries.
Book ChapterDOI

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

TL;DR: In this paper, the authors propose appropriate semantics and specifications for highly-concurrent libraries in a weakly-consistent, replicated setting, and 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.
Proceedings ArticleDOI

Detecting Isolation Bugs via Transaction Oracle Construction

TL;DR: Troc as mentioned in this paper decouple a transaction into independent statements and execute them on their own database views, which are constructed under the guidance of the claimed transaction isolation level, and any divergence between the actual transaction execution and the independent statement execution indicates an isolation bug.
References
More filters
Book ChapterDOI

Z3: an efficient SMT solver

TL;DR: Z3 is a new and efficient SMT Solver freely available from Microsoft Research that is used in various software verification and analysis applications.
Proceedings ArticleDOI

Soot: a Java bytecode optimization framework

TL;DR: Soot, a framework for optimizing Java* bytecode, is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a streamlined representation of bytecode which is simple to manipulate; Jimple, a typed 3-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple suitable for decompilation.
Proceedings ArticleDOI

A critique of ANSI SQL isolation levels

TL;DR: It is shown that these phenomena and the ANSI SQL definitions fail to properly characterize several popular isolation levels, including the standard locking implementations of the levels covered, and new phenomena that better characterize isolation types are introduced.
Journal ArticleDOI

The serializability of concurrent database updates

TL;DR: Several efficiently recognizable subclasses of the class of senahzable histories are introduced and it is shown how these results can be extended to far more general transaction models, to transactions with partly interpreted functions, and to distributed database systems.
Proceedings ArticleDOI

Atomizer: a dynamic atomicity checker for multithreaded programs

TL;DR: This work focuses on the fundamental noninterference property of atomicity and presents a dynamic analysis for detecting atomicity violations, which combines ideas from both Lipton 's theory of reduction and earlier dynamic race detectors such as Eraser.
Related Papers (5)