TY - GEN
T1 - Verifying vMVCC, a high-performance transaction library using multi-version concurrency control
AU - Chang, Yun Sheng
AU - Jung, Ralf
AU - Sharma, Upamanyu
AU - Tassarotti, Joseph
AU - Kaashoek, M. Frans
AU - Zeldovich, Nickolai
N1 - Publisher Copyright:
© OSDI 2023.All rights reserved.
PY - 2023
Y1 - 2023
N2 - Multi-version concurrency control (MVCC) is a widely used, sophisticated approach for handling concurrent transactions. vMVCC is the first MVCC-based transaction library that comes with a machine-checked proof of correctness, providing clients with a guarantee that it will correctly handle all transactions despite a complicated design and implementation that might otherwise be error-prone. vMVCC is implemented in Go, stores data in memory, and uses several optimizations, such as RDTSC-based timestamps, to achieve high performance (25–96% the throughput of Silo, a state-of-the-art in-memory database, for YCSB and TPC-C workloads). Formally specifying and verifying vMVCC required adopting advanced proof techniques, such as logical atomicity and prophecy variables, owing to the fact that MVCC transactions can linearize at timestamp generation prior to transaction execution.
AB - Multi-version concurrency control (MVCC) is a widely used, sophisticated approach for handling concurrent transactions. vMVCC is the first MVCC-based transaction library that comes with a machine-checked proof of correctness, providing clients with a guarantee that it will correctly handle all transactions despite a complicated design and implementation that might otherwise be error-prone. vMVCC is implemented in Go, stores data in memory, and uses several optimizations, such as RDTSC-based timestamps, to achieve high performance (25–96% the throughput of Silo, a state-of-the-art in-memory database, for YCSB and TPC-C workloads). Formally specifying and verifying vMVCC required adopting advanced proof techniques, such as logical atomicity and prophecy variables, owing to the fact that MVCC transactions can linearize at timestamp generation prior to transaction execution.
UR - http://www.scopus.com/inward/record.url?scp=85172335934&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85172335934&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:85172335934
T3 - Proceedings of the 17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023
SP - 871
EP - 886
BT - Proceedings of the 17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023
PB - USENIX Association
T2 - 17th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2023
Y2 - 10 July 2023 through 12 July 2023
ER -