Abstract | ||
---|---|---|
Logging is widely used to provide atomicity and durability for transactions in database management systems (DBMSs). For decades, the traditional logging protocol for disk-oriented database storage engines focuses on making a trade-off between data persistence and performance loss due to the large performance gap and access granularity mismatch between dynamic random-access memory (DRAM) and disks. With the development of persistent memory (PM) especially the release of the commercial Optane DC Persistent Memory Module (Optane DCPMM), a new class of storage engine which employs PM as its primary storage has emerged. The disk-based logging protocol is not suitable for these PM-aware storage engines, since PM provides data persistence and has low-latency comparable to DRAM. In this paper, we design and implement an efficient logging protocol for PM-aware storage engines: Bucket Logging (BKL). BKL uses the per-transaction log structure (i.e., bucket) to store logs internally and ensures efficient writing of metadata and logs. Benefit from multi version concurrency control, BKL only records small fixed-size log entries to implement fast logging and crash recovery. Moreover, we optimize our design based on our basic performance evaluation of Optane DCPMM. We implement a micro storage engine in MariaDB and using YCSB to evaluate BKL's performance on Optane DCPMM. The results show that the storage engine with BKL has 1.5 x -7.1 x higher throughput compared to InnoDB under write-heavy workloads. Compared with other logging protocol, BKL achieves higher throughput and better scalability and reduces the system performance recovery time by 1.4 x-11.8 x. |
Year | DOI | Venue |
---|---|---|
2021 | 10.1007/978-3-030-85896-4_13 | WEB AND BIG DATA, APWEB-WAIM 2021, PT I |
Keywords | DocType | Volume |
Logging and recovery, Persistent memory, Database, Multi version concurrency control | Conference | 12858 |
ISSN | Citations | PageRank |
0302-9743 | 0 | 0.34 |
References | Authors | |
0 | 2 |