Guaranteeing Recoverability via Partially Constrained Transaction Logs

by   H. Zhou, et al.

Transaction logging is an essential constituent to guarantee the atomicity and durability in online transaction processing (OLTP) systems. It always has a considerable impact on performance, especially in an in-memory database system. Conventional implementations of logging rely heavily on a centralized design, which guarantees the correctness of recovery by enforcing a total order of all operations such as log sequence number (LSN) allocation, log persistence, transaction committing and recovering. This strict sequential constraint seriously limits the scalability and parallelism of transaction logging and recovery, especially in the multi-core hardware environment. In this paper, we define recoverability for transaction logging and demonstrate its correctness for crash recovery. Based on recoverability, we propose a recoverable logging scheme named Poplar, which enables scalable and parallel log processing by easing the restrictions. Its main advantages are that (1) Poplar enables the parallel log persistence on multiple storage devices; (2) it replaces the centralized LSN allocation by calculating a partially ordered sequence number in a distributed manner, which allows log records to only track RAW and WAW dependencies among transactions; (3) it only demands transactions with RAW dependencies to be committed in serial order; (4) Poplar can concurrently restore a consistent database state based on the partially constrained logs after a crash. Experimental results show that Poplar scales well with the increase of IO devices and outperforms other logging approaches on both SSDs and emulated non-volatile memory.


page 2

page 3

page 4

page 5

page 6

page 7

page 8

page 9


Taurus: Lightweight Parallel Logging for In-Memory Database Management Systems (Extended Version)

Existing single-stream logging schemes are unsuitable for in-memory data...

Reality-based UTXO Ledger

The Unspent Transaction Output (UTXO) model is commonly used in the fiel...

Improving the Performance and Endurance of Persistent Memory with Loose-Ordering Consistency

Persistent memory provides high-performance data persistence at main mem...

An Evaluation of Intra-Transaction Parallelism in Actor-Relational Database Systems

Over the past decade, we have witnessed a dramatic evolution in main-mem...

DBLog: A Watermark Based Change-Data-Capture Framework

It is a commonly observed pattern for applications to utilize multiple h...

Transactions Make Debugging Easy

We propose TROD, a novel transaction-oriented framework for debugging mo...

Accelerating Analytical Processing in MVCC using Fine-Granular High-Frequency Virtual Snapshotting

Efficient transactional management is a delicate task. As systems face t...

Please sign up or login with your details

Forgot password? Click here to reset