# US 8,543,613 B2 · Generating a checkpoint image for use with an in-memory database

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,613 B2
- Document ID: US8543613B2
- Status: Granted
- Kind: B2
- Application number: 13/412,628
- Filed: 2012-03-06
- Published: 2012-06-28
- Granted: 2013-09-24
- Earliest claimed: 2010-11-25
- Assignees: International Business Machines Corporation
- Applicants: Vilho T. Raatikka
- Inventors: Vilho T. Raatikka
- Web page: https://patentgrep.com/patent/US8543613B2

## CPC

- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Additional information is provided in a checkpoint image such that direct pointers can be included in the checkpoint image. Thus, an in-memory database management system can be restored from the checkpoint image in the event of a failure without causing any significant performance drawbacks to the database management system.

## Claims

### Claim 1

A method for generating a checkpoint image of an in-memory database system, comprising:
identifying one or more storage pages which have been modified but not incorporated into a previous checkpoint image;
for each identified storage page, identifying a direct memory reference and its offset which correspond to a secondary storage location;
for each identified storage page, identifying one or more leaf nodes of a primary index and a secondary index and a memory address of each database table row identified in each of the identified leaf nodes;
for each of the identified memory addresses of each database table row, identifying a relation identifier of a database table of each of the database rows; and
writing the identified direct memory references, the offsets, a relation identifier directory, and the identified leaf nodes of the primary and secondary indexes to a checkpoint image.

### Claim 2 (depends on 1)

The method as claimed in claim 1, wherein the identified relation identifiers are stored in the relation identifier directory.

### Claim 3 (depends on 1)

The method as claimed in claim 1, further comprising a disk address array for storing the offsets of the direct memory references.

### Claim 4 (depends on 1)

The method as claimed in claim 1, further comprising a row address translation table for translation of direct memory references to the secondary storage locations, the row address translation table being ordered by before-checkpoint tuple addresses, wherein the row address translation table is also written to the checkpoint image.

### Claim 5 (depends on 1)

The method as claimed in claim 1, wherein the leaf nodes are leaf nodes of a B+-tree.

### Claim 6 (depends on 1)

The method as claimed in claim 1, wherein the leaf nodes are leaf nodes of a hashed index data structure.

### Claim 7 (depends on 1)

The method as claimed in claim 1, wherein each identified direct memory reference and its offset, each identified relation identifier, and each identified leaf node of the primary index and the secondary index is buffered to a checkpoint buffer before writing to the checkpoint image.

### Claim 8 (depends on 1)

The method as claimed in claim 1, further comprising initiating a checkpoint operation and preventing updates to the primary index and the secondary index and the storage pages during the checkpoint operation.

### Claim 9 (depends on 1)

The method as claimed in claim 1, further comprising restoring a database from the checkpoint image.
