# US 10,482,013 B2 · Eliding memory page writes upon eviction after page modification

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

- Number: US 10,482,013 B2
- Document ID: US10482013B2
- Status: Granted
- Kind: B2
- Application number: 15/513,407
- Filed: 2014-09-30
- Published: 2017-10-19
- Granted: 2019-11-19
- Earliest claimed: 2014-09-30
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Charles S. Johnson; Harumi Kuno; Goetz Graefe; Haris Volos; Mark Lillibridge; James Hyungsun Park; Wey Guy
- Web page: https://patentgrep.com/patent/US10482013B2

## CPC

- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/12: Replacement control
- G06F 2201/80: Database-specific techniques
- G06F 2212/1016: Performance improvement
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods associated with page modification are disclosed. One example method may be embodied on a non-transitory computer-readable medium storing computer-executable instructions. The instructions, when executed by a computer, may cause the computer to fetch a page to a buffer pool in a memory. The page may be fetched from at least one of a log and a backup using single page recovery. The instructions may also cause the computer to store a modification of the page to the log. The modification may be stored to the log as a log entry. The instructions may also cause the computer to evict the page from memory when the page is replaced in the buffer pool. Page writes associated with the eviction may be elided.

## Claims

### Claim 1

A non-transitory computer-readable medium storing computer-executable instructions that when executed by a computer cause the computer to:
fetch a page to a buffer pool in a memory to obtain a recovery version of the page;
use single page recovery from at least one of a log and a backup to update the recovery version of the page into a current version of the page stored in the memory;
store a modification of the current version of the page to the log, wherein the modification is stored as a log entry using write ahead logging without writing to the current version of the page stored in the memory; and
evict the current version of the page from the memory when the page is replaced in the buffer pool, eliding a page write associated with the eviction, wherein the eviction of the page occurs prior to writing the modification to the current version of the page stored in the memory.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein a representation of the current version of the page is stored and maintained in the log as a page image that is pre-fix consistent and a series of linked log entries that identify a sequence of modifications made to the current version of the page.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium of claim 2, wherein the instructions further cause the computer to:
clean the log by sequentially applying to the page image in the log, modifications identified in the series of linked log entries.

### Claim 4 (depends on 3)

The non-transitory computer-readable medium of claim 3, wherein cleaning the log comprises replacing the page image in the log with a new prefix-consistent representation of the page image created using single page recovery.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the log entry is one of: a redo entry that describes modifications to make to the page image in the log to bring the page image in the log up-to-date, and an undo entry that identifies a redo entry to roll back to restore the page image in the log to a prior state.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the log comprises a log buffer, an active log, and a page log, where the log buffer serves as a front end of a pipeline between the memory and the active log, and where storage and handling of log entries serve as a back end of the pipeline.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the handling of log entries comprises managing redo and undo entries, and log cleaning.

### Claim 8 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the instructions to cause the computer to store the modification to the page further comprise instructions to cause the computer to:
place a log buffer entry describing the modification into the log buffer;
receive an acknowledgement that the log buffer entry has been made durable in the active log; and
perform an action in response to the acknowledgement.

### Claim 9 (depends on 8)

The non-transitory computer-readable medium of claim 8, wherein the action is one or more of:
committing a transaction associated with the page,
replying to an operation associated with the page, and
releasing a lock associated with the page.

### Claim 10

A system, comprising:
a log pipeline back end comprising an active log and a prefix-consistent page log;
a database and log pipeline front end operating in a memory, comprising a page buffer to store active pages and a log buffer that serves as a pipeline for log entries to be made durable in the active log, where log entries describe modifications made to the active pages resident in a memory prior to updating the memory;
a page recovery logic to, in response to receiving a page fetch instruction associated with a page, construct a constructed page from an image of the page in the page log and log entries associated with the page in the active log, and store the constructed page in the page buffer;
a logging logic to make log entries from the log buffer durable in the active log, and to confirm when log entries are made durable to the front end; and
an eviction logic to evict the constructed page from the page buffer when the constructed page is replaced in the page buffer, eliding a page write associated with the eviction, wherein the eviction of the constructed page occurs prior to writing the modifications made to the active pages to the memory.

### Claim 11 (depends on 10)

The system of claim 10, comprising a log cleaner logic to apply modifications described by log entries in the active log to corresponding pages in the page log.

### Claim 12 (depends on 11)

The system of claim 11, comprising a log archive, where the log cleaner logic moves the log entries in the active log to the log archive after applying the modifications described by the log entries in the active log to the corresponding pages in the page log.

### Claim 13 (depends on 10)

The system of claim 10, wherein the page log comprises a sparse page log, and a page log archive, and wherein the page recovery logic obtains the image of the page from the page log archive when the image of the page is not found in the sparse page log.

### Claim 14

A method, comprising:
fetching a page from a database back end to a database front end by applying single page recovery to a page image retrieved from a page log in the database back end and log entries associated with the page image retrieved from an active log in the database back end to create a current version of the page image stored in a memory associated with the database front end;
making modifications to the page image stored in the memory associated with the database front end durable in the active log without writing the modifications to the memory; and
evicting the page image stored in the memory associated with from the database front end when the page is replaced in the database front end, eliding a page write associated with the eviction, wherein the eviction of the page occurs prior to writing the modifications to the memory.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
cleaning the active log by applying the log entries to the page image in the page log; and
archiving the log entries.
