@article{Liu2022, 
author = {Xuyang Liu and Kang Chen and Mengxing Liu and Shiyu Cai and Yongwei Wu and Weimin Zheng},
title = {Multi-Clock Snapshot Isolation Concurrency Control for NVM Database},
year = {2022},
journal = {Tsinghua Science and Technology},
volume = {27},
number = {6},
pages = {925-938},
keywords = {Non-Volatile Memory (NVM), snapshot isolation, Multi-Version Concurrency Control (MVCC), vector clock},
url = {https://www.sciopen.com/article/10.26599/TST.2021.9010036},
doi = {10.26599/TST.2021.9010036},
abstract = {Multi-Clock Snapshot Isolation (MCSI) is a concurrency control mechanism that implements snapshot isolation on a single-layer Non-Volatile Memory (NVM) database. It stores a single copy of data by using multi-version storage to ensure durability and runtime access. With multi-clock transaction timestamp assignment, MCSI can efficiently generate snapshots with vector clocks and use per-thread transaction status arrays to identify uncommitted versions in NVM. For evaluation, we compared MCSI with the PostgreSQL-style concurrency control used in the single-layer NVM database N2DB. The maximum transaction throughput of MCSI is 101%–195% higher than that of N2DB for the YCSB workloads, and 25%–49% higher for the TPC-C workloads. Moreover, the transaction latency of MCSI remains relatively stable as the thread count increases. With 18 worker threads, the average transaction latency of MCSI is 65%–84% lower than that of N2DB for the YCSB workloads and 16%–43% lower for the TPC-C workloads.}
}