Staging Index Trees to Reduce Write Amplification in Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems face challenges in managing index updates efficiently, leading to high write amplification and garbage collection bottlenecks, especially when merging new address ranges into large indices, which affects performance and processing costs.

Innovation Solution

The system employs a distributed storage architecture with a file table subsystem maintaining a root tree and ordered sets of trees, a write buffer for storing index data, and an index management system that performs targeted merges and garbage collection, preventing garbage collection on ordered sets of trees to minimize write amplification and maintain efficient index management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If new address ranges are merged into the main index, then the index is updated to reflect current data, but write amplification increases significantly

Engineering Contradiction:
Improveindex accuracyVSAvoidwrite amplification
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent divides the index into multiple trees organized in generations, where each tree handles a subset of address ranges. This segmentation allows updates to be applied to individual trees rather than rewriting the entire index, significantly reducing write amplification while maintaining index accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by maintaining multiple generations of index trees in advance. When updates arrive, they are applied to the current generation tree without blocking garbage collection on the previous generation, which remains valid for reading. This preliminary structuring prevents the need for costly full-index rewrites during merge operations.

Inventive Principle:
Principle #10Preliminary action

2Loss of substance

If garbage collection scans the entire index to release obsolete data, then storage space is reclaimed, but the merge operation is blocked for significant time

Engineering Contradiction:
Improvestorage space reclamationVSAvoidmerge blocking time
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The patent segments the index into multiple generations (current and previous) that can be processed independently. Garbage collection operates on the previous generation tree while the current generation accepts updates, allowing these operations to proceed in parallel without mutual blocking, thus reducing merge blocking time while maintaining storage reclamation effectiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic generation management where the system can switch between current and previous generation trees. This dynamic approach allows garbage collection to work on one generation while updates are applied to another, enabling concurrent operation and eliminating the blocking behavior inherent in single-generation systems.

Inventive Principle:
Principle #15Dynamics

3Speed

If the index is highly structured to reduce access time, then retrieval performance improves, but the index structure becomes more complex

Engineering Contradiction:
Improveretrieval speedVSAvoidindex structure complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent uses segmented index trees where each tree maintains a structured format optimized for retrieval. The multi-generation structure adds organizational complexity but each individual tree remains relatively simple and well-structured, balancing retrieval performance with manageable complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a temporal dimension to the index structure by organizing trees into generations with creation timestamps. This dimensional addition enables efficient retrieval through temporal ordering while managing complexity by separating structural organization from data content, allowing the index to scale without linearly increasing complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Productivity

If copy operations are performed frequently for virtual machine deployment, then service scalability improves, but garbage collection may never complete

Engineering Contradiction:
Improvedeployment scalabilityVSAvoidgarbage collection completion
Core Design Contradiction:
ProductivityVSDuration of action of stationary object

Solution Approach 1:

The patent performs preliminary structuring by maintaining multiple generations of index trees, allowing copy operations to work on the current generation while garbage collection processes the previous generation independently. This preliminary organization enables frequent copy operations for deployment scalability without preventing garbage collection completion, as both operations can proceed concurrently on different generations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuity of useful action by allowing both copy operations and garbage collection to run continuously without mutual blocking. Copy operations maintain service scalability by working on the current generation index, while garbage collection continuously reclaims space from the previous generation, ensuring both functions complete their tasks without interruption.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentEP3646206B1Staging anchor trees for improved concurrency and performance in page range index management
Publication Date: 2024.08.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3646206B1 patent drawingFigure 1~2
  • EP3646206B1 patent drawingFigure 3
  • EP3646206B1 patent drawingFigure 4

AI summary

A distributed storage system includes non-volatile storage storing portions of a first object. The first object encompasses data having a first range of addresses and each portion includes data for a respective range of addresses that is a proper subset of the first range. A first data structure stores, for each portion, data indicating the respective range of addresses and a pointer to where the portion is stored. The first data structure includes a root tree and a set of trees ordered by creation data such that a last tree is most-recently created. The non-volatile storage stores received write data and a write buffer stores index data pointing to storage locations of the received write data. An index management system stores the index data from the write buffer into the last tree and, if the ordered set is empty, creates a tree in the ordered set before the storing.