Hold-Aside Buffer for LSM Flushes With Uncommitted Transactions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

LSM tree databases face issues with uncommitted data during flush operations, leading to violations of data invariance and inefficiencies in memory utilization, particularly for long-lived transactions.

Innovation Solution

A hold-aside buffer in volatile memory is used to temporarily store uncommitted data from ongoing transactions, allowing committed data to be flushed to higher levels, maintaining data invariance and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of moving object

If uncommitted data is stored in Level 0 during ongoing transactions, then the database can support long-lived transactions, but data invariance is violated when flush operations occur

Engineering Contradiction:
Improvetransaction durationVSAvoiddata invariance
Core Design Contradiction:
Duration of action of moving objectVSStability of the object's composition

Solution Approach 1:

The patent segments Level 0 into two distinct regions: a committed data region and an uncommitted data region (hold-aside buffer). This segmentation allows the database to maintain data invariance by clearly separating data that has been committed from data that is still part of ongoing transactions, while still supporting long-lived transactions by providing dedicated space for uncommitted data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts uncommitted data from the main Level 0 storage and places it in a separate hold-aside buffer. This extraction prevents uncommitted data from interfering with flush operations on committed data, thereby maintaining data invariance while still allowing long-lived transactions to proceed by providing dedicated temporary storage for their uncommitted data.

Inventive Principle:
Principle #2Taking out (Extraction)

2Duration of action of moving object

If uncommitted data is allowed in Level 0, then long-lived transactions can be supported, but memory utilization becomes inefficient

Engineering Contradiction:
Improvetransaction durationVSAvoidmemory utilization
Core Design Contradiction:
Duration of action of moving objectVSQuantity of substance

Solution Approach 1:

By segmenting Level 0 into committed and uncommitted regions, the system can independently manage memory resources for each region. The hold-aside buffer size can be optimized separately from the main Level 0 storage, allowing efficient memory utilization while supporting long-lived transactions that require temporary uncommitted data storage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the organizational parameters of Level 0 by introducing a separate hold-aside buffer with distinct management policies. This allows the system to optimize memory allocation for uncommitted data separately from committed data, improving overall memory utilization efficiency while maintaining support for long-lived transactions.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If flush operations are performed on Level 0, then committed data can be written to Level 1, but uncommitted data causes violations of data invariance

Engineering Contradiction:
Improveflush operation efficiencyVSAvoiddata invarance
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent segments Level 0 into committed data region and uncommitted data region, allowing flush operations to be performed independently on the committed region without interference from uncommitted data. This segmentation enables efficient flush operations to proceed while maintaining data invariance by ensuring only committed data is flushed to Level 1.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By extracting uncommitted data into a separate hold-aside buffer, the patent enables flush operations to be performed on committed data without the presence of uncommitted data in Level 0. This extraction resolves the conflict between flush operation efficiency and data invariance by allowing flushes to proceed efficiently on committed data while uncommitted data remains safely isolated.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12468633B2Hold-aside buffer for uncommitted write transactions in a log structured key-value database
Publication Date: 2025.11.11 MICRON TECHNOLOGY INC
  • US12468633B2 patent drawing
  • US12468633B2 patent drawing
  • US12468633B2 patent drawing

AI summary

An event trigger to flush key-value data from a volatile memory device is detected. In response to detection of the event trigger, a determination is made whether the key-value data comprises uncommitted data for one or more active database transactions. If the key-value data comprises uncommitted data for one or more active database transactions, the uncommitted data is moved to a hold aside buffer in the volatile memory device, and committed data in the key-value data is stored on a non-volatile memory device.