R3: Record-Replay-Retroaction for Database-Backed Applications
Qian Li, Peter Kraft, Michael J. Cafarella, Çagatay Demiralp, Goetz Graefe, Christos Kozyrakis, Michael Stonebraker, Lalith Suresh, Xiangyao Yu, Matei Zaharia
摘要
Developers would benefit greatly from time travel: being able to faithfully replay past executions and retroactively execute modified code on past events. Currently, replay and retroaction are impractical because they require expensively capturing fine-grained timing information to reproduce concurrent accesses to shared state. In this paper, we propose practical time travel for database-backed applications , an important class of distributed applications that access shared state through transactions.
We present R 3 , a novel Record-Replay-Retroaction tool. R 3 implements a lightweight interceptor to record concurrency information for applications at transaction-level granularity, enabling replay and retroaction with minimal overhead. We address key challenges in both replay and retroaction. First, we design a novel algorithm for faithfully reproducing application requests running with snapshot isolation, allowing R 3 to support most production DBMSs. Second, we develop a retroactive execution mechanism that provides high fidelity with the original trace while supporting nearly arbitrary code modifications. We demonstrate how R 3 simplifies debugging for real, hard-to-reproduce concurrency bugs from popular open-source web applications. We evaluate R 3 using TPC-C and microservice workloads and show that R 3 always-on recording has a small performance overhead (<25% for point queries but <0.1% for complex transactions like in TPC-C) during normal application execution and that R 3 can retroactively execute bugfixed code over recorded traces within 0.11--0.78× of the original execution time.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper6
- Reverse Debugging of Kernel Failures in Deployed SystemsXinyang Ge, Ben Niu, Weidong CuiUSENIX ATC 2020 · 被引用 29 次
- Taurus: Lightweight Parallel Logging for In-Memory Database Management SystemsYu Xia, Xiangyao Yu, Andrew Pavlo, Srinivas DevadasVLDB 2021 · 被引用 22 次
- Lotus: Scalable Multi-Partition Transactions on Single-Threaded Partitioned DatabasesXinjing Zhou, Xiangyao Yu, Goetz Graefe, Michael StonebrakerVLDB 2022 · 被引用 11 次
- Efficient Answering of Historical What-if QueriesFelix S. Campbell, Bahareh Sadat Arab, Boris GlavicSIGMOD 2022 · 被引用 7 次
- Aria: A Fast and Practical Deterministic OLTP DatabaseYi Lu, Xiangyao Yu, Lei Cao, Samuel MaddenVLDB 2020
相关 Paper
- IsoDiff: Debugging Anomalies Caused by Weak IsolationYifan Gan, Xueyuan Ren, Drew Ripberger, Spyros Blanas 等VLDB 2020
- DBStorm: Generating Various Effective Workloads for Testing Isolation LevelsKeqiang Li, Siyang Weng, Lyu Ni, Chengcheng Yang 等ISSTA 2024 · 被引用 5 次
- Are Database System Researchers Making Correct Assumptions about Transaction Workloads?Cuong D. T. Nguyen, Kevin Chen, Christopher DeCarolis, Daniel J. AbadiSIGMOD 2025 · 被引用 4 次
- Repairing serializability bugs in distributed database programs via automated schema refactoringKia Rahmani, Kartik Nagar, Benjamin Delaware, Suresh JagannathanPLDI 2021 · 被引用 4 次
- Leopard: A Black-Box Approach for Efficiently Verifying Various Isolation LevelsKeqiang Li, Siyang Weng, Peiyuan Liu, Lyu Ni 等ICDE 2023 · 被引用 3 次
