Everything is a Transaction: Unifying Logical Concurrency Control and Physical Data Structure Maintenance in Database Management Systems
Everything is a Transaction: Unifying Logical Concurrency Control and Physical Data Structure Maintenance in Database Management Systems
复制标题
DOI:
--
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
Ling Zhang;Matthew Butrovich;Tianyu Li;Yash Nannapanei;Andrew Pavlo;J. Rollinson;Huanchen Zhang;Ambarish Balakumar;Daniel Biales;Ziqi Dong;Emmanuel Eppinger;Jordi Gonzàlez;Wan Shen Lim;Jianqiao Liu;Prashanth Menon;Soumil Mukherjee;Tanuj Nayak;Amadou Latyr Ngom;Jeff Niu;D. Patra;P. Raj;Stephanie Wang;Wuwen Wang;Yao-Tin Yu;William Zhang
中科院分区:
文献类型:
--
作者:
Ling Zhang;Matthew Butrovich;Tianyu Li;Yash Nannapanei;Andrew Pavlo;J. Rollinson;Huanchen Zhang;Ambarish Balakumar;Daniel Biales;Ziqi Dong;Emmanuel Eppinger;Jordi Gonzàlez;Wan Shen Lim;Jianqiao Liu;Prashanth Menon;Soumil Mukherjee;Tanuj Nayak;Amadou Latyr Ngom;Jeff Niu;D. Patra;P. Raj;Stephanie Wang;Wuwen Wang;Yao-Tin Yu;William Zhang
Almost every database management system (DBMS) supporting transactions created in the last decade implements multi-version concurrency control (MVCC). Still, these systems rely on physical data structures (e.g., B+trees, hash tables) that do not natively support multi-versioning. As a result, there is a disconnect between the logical semantics of transactions and the DBMS’s underlying implementation. System developers must invest engineering efforts in coordinating transactional access to these data structures and non-transactional maintenance tasks. This burden leads to challenges when reasoning about the system’s correctness and performance and inhibits its modularity. In this paper, we propose the Deferred Action Framework (DAF), a new system architecture for scheduling maintenance tasks in an MVCC DBMS integrated with the system’s transactional semantics. DAF allows the system to register arbitrary actions and then defer their processing until they are deemed safe by transactional processing. We show that DAF can support garbage collection and index cleaning without compromising performance while facilitating higher-level implementation goals, such as non-blocking schema changes.