Vectored Multi-Version B+Tree for NVM Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persisting data structures on nonvolatile memory (NVM) faces challenges such as maintaining application write order, reverting partial updates, and optimizing write and read latency due to issues like cache eviction and write amplification in existing B+Tree data storage structures.

Innovation Solution

A vectored multi-version B+Tree data storage structure is used, where updates to the same key are inserted vertically and unique keys cause horizontal growth, reducing write amplification and allowing data to be persisted in native form without transformation, using cache-line flush and store fence instructions for durability and consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a B+Tree data storage structure is used on NVM, then data can be persisted in native form without transformation, but write amplification occurs due to ongoing sorting requiring right shifts and additional CLFLUSH instructions

Engineering Contradiction:
Improvedata persistence without transformationVSAvoidwrite speed
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The B+Tree structure is segmented into fixed-width slots within nodes, where each slot has a predetermined position. This segmentation eliminates the need for dynamic sorting and right-shift operations during writes, as values are directly placed into appropriate slots based on key comparison, reducing write amplification and improving write speed while maintaining native form persistence

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The data structure is pre-organized with fixed-width slots and predetermined positions before writes occur. This preliminary structuring allows direct insertion without subsequent sorting operations, eliminating the need for right-shifts and reducing the number of CLFLUSH instructions required, thereby improving productivity while maintaining ease of manufacture

Inventive Principle:
Principle #10Preliminary action

2Reliability

If cache-line flush and store fence instructions are used to maintain application write order, then data consistency is achieved, but write latency increases

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of flushing entire cache lines for every write operation, the patent applies cache-line flush and store fence instructions selectively only when necessary to maintain consistency. This partial application reduces the overhead and latency associated with these instructions while still achieving the required data consistency, balancing reliability with time efficiency

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If multi-version data structures are used to revert partial updates, then log-less durability is achieved, but device complexity increases

Engineering Contradiction:
ImprovedurabilityVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The multi-version data structure is segmented into fixed-width slots with predetermined positions, where each slot stores a specific version of the data. This segmentation simplifies the management of multiple versions by providing a structured, predictable layout that reduces the complexity of tracking and reverting partial updates, achieving log-less durability with reduced device complexity

Inventive Principle:
Principle #1Segmentation

4Productivity

If fixed-width slots with predetermined positions are used in B+Tree nodes, then write amplification is reduced, but flexibility in handling variable-length values is limited

Engineering Contradiction:
Improvewrite speedVSAvoidhandling variable-length values
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent employs fixed-width slots with predetermined positions in B+Tree nodes, where each slot is designed to accommodate values of specific widths. This parameter-based approach allows the data structure to handle variable-length values by selecting appropriate fixed-width slots, maintaining write speed and reducing write amplification while preserving adaptability through parameter variation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3186729B1Methods for persisting data on nonvolatile memory for fast updates and instantaneous recovery and devices thereof
Publication Date: 2019.04.10 NETAPP INC
  • EP3186729B1 patent drawingFigure 1
  • EP3186729B1 patent drawingFigure 2
  • EP3186729B1 patent drawingFigure 3

AI summary

A storage management computing device, method and non-transitory computer readable medium that persist data on non-volatile memory includes maintaining a data storage structure comprising multiple nodes on non-volatile memory in at least one storage server. A determination is made when a received key in an update matches an existing key in one of the multiple nodes in the data storage structure. When the determination indicates the match, the update is provided for insertion in a slot in a vector extending from the existing key in the one of the multiple nodes for the data storage structure which matches the received key.