# US 10,769,035 B2 · Key-value index recovery by log feed caching

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

- Number: US 10,769,035 B2
- Document ID: US10769035B2
- Status: Granted
- Kind: B2
- Application number: 15/581,779
- Filed: 2017-04-28
- Published: 2018-11-01
- Granted: 2020-09-08
- Earliest claimed: 2017-04-28
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Umesh Deshpande; Sangeetha Seshadri
- Web page: https://patentgrep.com/patent/US10769035B2

## CPC

- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 11/2023: {Failover techniques}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- G06F 16/28: Databases characterised by their database models, e.g. relational or object models
- G06F 11/2033: {switching over of hardware resources}
- G06F 11/2035: {without idle spare hardware}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer system may include a storage device and nodes cooperating therewith to define a key value database architecture. A first node of the nodes may be configured to generate a plurality of checkpoints. The computer system may also include a second node of the nodes configured to operate a log feed cache manager based upon the checkpoints generated by the first node.

## Claims

### Claim 1

A computer system comprising:
a memory including a plurality of nodes;
a storage device;
a processor coupled to the memory and the storage device to define a key value database architecture;
a first node of the plurality thereof configured to generate a plurality of checkpoints, each checkpoint including a plurality of checkpoint records that track indexes of the key value database architecture, each index including a mapping from a key to a location of a corresponding value on the storage device; and
a second node of the plurality thereof including spare node memory, the second node configured to operate a log feed cache manager to cache one or more portions of a log feed in the spare node memory, each portion including at least the checkpoint records of one of the checkpoints generated by the first node.

### Claim 2 (depends on 1)

The computer system of claim 1 wherein the first node is configured to write the plurality of checkpoints to the storage device.

### Claim 3 (depends on 1)

The computer system of claim 1 wherein the first node is configured to communicate a notification to the log feed cache manager based upon generation of the plurality of checkpoints.

### Claim 4 (depends on 1)

The computer system of claim 1 wherein the log feed cache manager is configured to read the log feed from the storage device.

### Claim 5 (depends on 1)

The computer system of claim 1 wherein the first node is configured to communicate the log feed from the first node to the second node during generation of the plurality of checkpoints.

### Claim 6 (depends on 5)

The computer system of claim 5 wherein the second node is configured to validate the log feed based upon completion of generation of the plurality of checkpoints.

### Claim 7 (depends on 5)

The computer system of claim 5 wherein the first node is configured to communicate the log feed without writing the plurality of checkpoints to the storage device.

### Claim 8 (depends on 1)

The computer system of claim 1 wherein the first node is configured to communicate portions of the log feed from the first node to the second node based upon a current checkpoint and a previous checkpoint generated by the first node.

### Claim 9 (depends on 1)

The computer system of claim 1 wherein the first node comprises an active node, and the second node comprises a spare node.

### Claim 10 (depends on 1)

The computer system of claim 1 wherein the first node comprises a first active node; and wherein the second node comprises a second active node having spare capacity.

### Claim 11 (depends on 1)

The computer system of claim 1 wherein the log feed cache manager is configured to select a subset of shard log feeds for caching.

### Claim 12 (depends on 11)

The computer system of claim 11 wherein the log feed cache manager is configured to select the subset of shard log feeds based upon at least one of overhead, caching read performance, and a quality of service (QoS).

### Claim 13 (depends on 1)

The computer system of claim 1 wherein a respective one of the first and second nodes is configured, for one of load balancing and failover from the first node, where ownership of at least one shard is transferred, respectively, from the first node to the second node.

### Claim 14 (depends on 1)

The computer system of claim 1 wherein the log feed cache manager is configured to, for node affinity, cache shards from the storage device based upon at least one of a load across the first and second nodes, a quality of service (QoS), and a relation between shards.

### Claim 15 (depends on 1)

The computer system of claim 1, wherein, during a recovery operation, the log feed cache manager is configured to replay at least one of the cached portions of the log feed and records added at a tail of the log feed after a latest checkpoint.

### Claim 16

A computer-implemented method for operating a computer system comprising a storage device, a memory including a plurality of nodes, and a processor coupled to the memory and the storage device to define a key value database architecture, the method comprising:
using a first node of the plurality thereof to generate a plurality of checkpoints, each checkpoint including a plurality of checkpoint records that tracks indexes of the key value database architecture, each index including a mapping from a key to a location of a corresponding value on the storage device;
operating, using a second node of the plurality thereof including spare node memory a log feed cache manager; and
caching, via the log feed cache manager, one or more portions of a log feed in the spare node memory, each portion including at least the checkpoint records of one of the checkpoints generated by the first node.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16 wherein the first node is used to write the plurality of checkpoints to the storage device.

### Claim 18 (depends on 16)

The computer-implemented method of claim 16 wherein the first node is used to communicate a notification to the log feed cache manager based upon generation of the plurality of checkpoints.

### Claim 19

A computer program product for operating a computer system comprising a computer readable storage medium having computer executable instructions thereon for causing a processor to perform operations comprising:
using a first node of a plurality thereof of the computer system to generate a plurality of checkpoints, wherein:
the plurality of nodes cooperate with a storage device to define a key value database;
each checkpoint includes a plurality of checkpoint records to track indexes of the key value database architecture, each index including a mapping from a key to a location of a corresponding value on the storage device;
operating, using a second node of the plurality thereof including spare node memory a log feed cache manager; and
caching, via the log feed manager, one or more portions of a log feed in the spare node memory, each portion including at least the checkpoint records of one of the checkpoints generated by the first node.

### Claim 20 (depends on 19)

The computer program product of claim 19 wherein the computer executable instructions cause the first node to write the plurality of checkpoints to the storage device.
