SIREN: A Memory-Conserving, Snapshot-Consistent Checkpoint Algorithm for in-Memory Databases

A.-P. Liedes, Antoni Wolski

2006 · 33 citations · 10 references

Concepts

TL;DR

Checkpointing is the primary means of persisting an in‑memory database and, together with transaction logs, underpins durability, but it typically reduces throughput and increases memory usage. This work introduces a consistency‑preserving, memory‑efficient checkpointing method. The approach replaces page shadowing with tuple shadowing and rearranges tuples across pages to minimize memory overhead. Analytical and experimental results demonstrate a substantial reduction in memory usage and up to 30 % higher transaction throughput versus a fuzzy checkpoint with undo/redo logging.

Abstract

Checkpoint of an in-memory database is the main source of a persistent database image surviving a software crash, or a power outage, and is, together with transactions logs, a foundation for transaction durability. Since checkpoints are created simultaneously with transaction processing, they tend to decrease database throughput and increase its memory footprint. Of the current methods, most efficient are the fuzzy checkpoint algorithms that write dirty pages to disk and require transaction logs for reconstructing a consistent state. Known consistency-preserving methods suffer from excessive memory usage or a transaction-blocking behavior. In this paper, we present a consistency-preserving and memory-efficient checkpoint method. It is based on tuple shadowing as opposed to known page shadowing methods, and rearranging of tuples between pages for minimal memory usage overhead. The method's algorithms are introduced and both analytical and experimental analysis of the proposed algorithms show significant reduction in the memory usage overhead, and up to 30% higher transaction throughput compared with a fuzzy checkpoint method with undo/redo log.

References

10