Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring

03/09/2021
by   Kia Rahmani, et al.
0

Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow programmers to choose when a transaction must be executed under serializability, with the expectation that transactions would only be so marked when necessary to avoid serious concurrency bugs. However, this is a significant burden to impose on developers, requiring them to (a) reason about subtle concurrent interactions among potentially interfering transactions, (b) determine when such interactions would violate desired invariants, and (c) then identify the minimum number of transactions whose executions should be serialized to prevent these violations. To mitigate this burden, in this paper we present a sound and fully automated schema refactoring procedure that transforms a program's data layout – rather than its concurrency control logic – to eliminate statically identified concurrency bugs, allowing more transactions to be safely executed under weaker and more performant database guarantees. Experimental results over a range of database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120 baselines.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/26/2017

Alone Together: Compositional Reasoning and Inference for Weak Isolation

Serializability is a well-understood correctness criterion that simplifi...
research
07/31/2017

Debugging Transactions and Tracking their Provenance with Reenactment

Debugging transactions and understanding their execution are of immense ...
research
08/15/2019

CLOTHO: Directed Test Generation for Weakly Consistent Database Systems

Relational database applications are notoriously difficult to test and d...
research
07/03/2022

GlassDB: An Efficient Verifiable Ledger Database System Through Transparency

Verifiable ledger databases protect data history against malicious tampe...
research
06/28/2019

Robustness Against Transactional Causal Consistency

Distributed storage systems and databases are widely used by various typ...
research
07/17/2020

Software Transactional Memory with Interactions

Software Transactional memory (STM) is an emerging abstraction for concu...
research
08/06/2019

WiSer: A Highly Available HTAP DBMS for IoT Applications

In a classic transactional distributed database management system (DBMS)...

Please sign up or login with your details

Forgot password? Click here to reset