Repairing serializability bugs in distributed database programs via automated schema refactoring

Repairing serializability bugs in distributed database programs via automated schema refactoring
复制标题

通过自动模式重构修复分布式数据库程序中的可序列化错误

DOI:
10.1145/3453483.3454028
复制
发表时间:
2021
期刊:
ACM Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Jagannathan, Suresh
Jagannathan, Suresh
中科院分区:
--
文献类型:
--
作者:
Rahmani, Kia;Nagar, Kartik;Delaware, Benjamin;Jagannathan, Suresh

文献摘要

参考文献

被引文献

相似文献

可串行性是一种易于理解的并发控制机制,可以简化对高并发数据库程序的推理。不幸的是,强制可串行化会带来很高的性能成本,尤其是在地理上分布式的数据库集群上。因此,许多数据库允许程序员选择何时必须在可串行性下执行事务,并期望事务仅在必要时才被标记以避免严重的并发错误。然而,这对开发人员来说是一个沉重的负担,要求他们(a)推理潜在干扰事务之间微妙的并发交互,(b)确定此类交互何时会违反所需的不变量,以及(c)然后确定应串行化执行以防止这些违规的事务的最小数量。为了减轻这种负担,本文提出了一种完善的全自动模式重构过程,该过程重构程序的数据布局(而不是其并发控制逻辑),以消除静态识别的并发错误,从而允许在较弱和性能更高的数据库保证下安全地执行更多事务。一系列实际数据库基准测试的实验结果表明,我们的方法在消除并发错误方面非常有效,安全的重构程序显示,与序列化基准相比,吞吐量平均提高了 120%,延迟降低了 45%。
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, this paper presents a sound fully-automated schema refactoring procedure that refactors 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 realistic database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120% higher throughput and 45% lower latency compared to a serialized baseline.
DOI: --
发表时间: 2004
影响因子: 8.9
作者:
Shiyong Lu;A. Bernstein;P. M. Lewis
通讯作者: P. M. Lewis
DOI: 10.1145/3276534
发表时间: 2018-11-01
影响因子: 1.8
作者:
Kaki, Gowtham;Earanky, Kapil;Jagannathan, Suresh
通讯作者: Jagannathan, Suresh
DOI: 10.1145/3360543
发表时间: 2019-08
影响因子: --
作者:
Kia Rahmani;Kartik Nagar;Benjamin Delaware;S. Jagannathan
通讯作者: Kia Rahmani;Kartik Nagar;Benjamin Delaware;S. Jagannathan
DOI: 10.1145/3296979.3192382
发表时间: 2017-11
影响因子: --
作者:
Yu Feng;R. Martins;O. Bastani;Işıl Dillig
通讯作者: Yu Feng;R. Martins;O. Bastani;Işıl Dillig
可合并的复制数据类型
DOI: 10.1145/3360580
发表时间: 2019
影响因子: --
作者:
Kaki, Gowtham;Priya, Swarn;Sivaramakrishnan, KC;Jagannathan, Suresh
通讯作者: Jagannathan, Suresh