Immutable KVS Tree for Reducing Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

LSM trees face issues such as significant write amplification, inefficient search performance, and limited write throughput due to their constant merging and sorted nature, leading to increased wear on SSDs and resource consumption.

Innovation Solution

The KVS tree employs a tree structure with temporally ordered key-value sets that are immutable, using a determinative mapping for child node placement and separating keys from values, allowing for efficient search and reduced write amplification through maintenance operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If LSM trees use constant merging and sorted structure, then search efficiency is improved, but write amplification increases and SSD wear increases

Engineering Contradiction:
Improvesearch efficiencyVSAvoidwrite amplification
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent segments the tree structure into immutable key-value sets at different levels, where each level contains sorted data but merging is not constant. Instead of continuously merging sorted structures, the patent divides data into discrete immutable sets that are written once and never modified, reducing the frequency and cost of merge operations while preserving search efficiency through the hierarchical sorted structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent inverts the traditional LSM approach by making key-value sets immutable rather than mutable. Instead of continuously modifying and re-merging sorted structures, the system writes immutable sorted sets and uses compaction to manage space, reversing the conventional approach of frequent merges in favor of immutable writes with periodic compaction.

Inventive Principle:
Principle #13The other way round (Inversion)

2Reliability

If LSM trees use constant merging operations, then data consistency is maintained, but write throughput is limited

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-sorting key-value pairs into immutable sets before writing to storage. The compaction process is triggered by predefined conditions (such as space utilization thresholds) rather than occurring continuously, allowing batches of writes to be accumulated and processed together, thereby improving throughput while maintaining consistency through the immutable nature of each write operation.

Inventive Principle:
Principle #10Preliminary action

3Speed

If LSM trees maintain sorted structure, then search performance is improved, but resource consumption increases

Engineering Contradiction:
Improvesearch performanceVSAvoidresource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent implements periodic action through compaction operations that are triggered by thresholds rather than occurring continuously. The sorted structure is maintained at write time within immutable key-value sets, and compaction periodically reorganizes space by merging immutable sets from different levels. This periodic approach reduces continuous resource consumption while preserving search performance through the maintained sorted hierarchy.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10706106B2Merge tree modifications for maintenance operations
Publication Date: 2020.07.07 MICRON TECHNOLOGY INC
  • US10706106B2 patent drawing
  • US10706106B2 patent drawing
  • US10706106B2 patent drawing

AI summary

Systems and techniques for merge tree modifications for maintenance operations are described herein. A request for a KVS tree is received. Here, the KVS tree is a data structure including nodes and the nodes include a temporally ordered sequence of kvsets that store keys in sorted order. A parameter set for the KVS tree is received. The request is executed on the KVS tree by modifying operation of the KVS tree in accordance with the parameter.