摘要

Four requirements for checkpointing in update intensive main memory database systems are identified, namely how checkpointing interferes with normal transaction processing, how checkpointing handles skewed access pattern, whether checkpointing supports fast restart, and whether checkpointing provides system availability during recovery. A partition based transaction-consistent checkpoint scheme is proposed in this paper, the scheme uses a tuple-level dynamic multi-versioning concurrency control protocol to avoid the lock conflicts between read only transactions and update transactions, thus achieves high system throughput. Checkpointing is implemented as data partition read only transactions, and incurs little interfering with normal transaction processing, furthermore transaction-consistent checkpoint requires writing out only redo log records of committed transactions, during recovery only one pass of log scanning is needed. Priority-based on demand partition recovery gives high attention to data access demands of executing transactions, provides system availability during recovery, which is critical for high performance applications. Finally, two level version management and dynamic version sharing reduce space overhead to an acceptable level. Experiment results demonstrate effectiveness and efficiency of the proposed scheme.

全文