MVCC Tree Capacity Management via Level-Based Chunking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-version concurrency control (MVCC) in data storage systems leads to severe hard drive space fragmentation due to the need for frequent tree updates in search trees like B+ trees, which results in resource-demanding garbage collection processes.

Innovation Solution

Implementing a capacity management system that separates tree elements into different chunks based on their levels, allowing for efficient garbage collection by storing tree roots, nodes, and leaves in distinct chunks, thereby reducing the frequency and workload of garbage collection cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tree updates are performed frequently under MVCC to maintain data consistency, then data access reliability is improved, but hard drive space fragmentation increases

Engineering Contradiction:
Improvedata access reliabilityVSAvoidhard drive space fragmentation
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent segments the B+ tree into multiple independent levels (root level, internal node levels, and leaf levels), with each level stored in separate disk blocks. This segmentation allows independent management and garbage collection of each level, preventing fragmentation from propagating across the entire tree structure and reducing overall fragmentation while maintaining data consistency through MVCC.

Inventive Principle:
Principle #1Segmentation

2Productivity

If copying garbage collection is used to manage fragmentation, then storage utilization is improved, but resource consumption increases

Engineering Contradiction:
Improvestorage utilizationVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent performs garbage collection partially by level, starting with the least frequently accessed levels (leaf levels) and progressing to higher levels only when necessary. This partial action approach recovers storage space effectively while minimizing the computational resources and energy required compared to full-tree garbage collection, thus improving storage utilization without excessive resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Stability of the object's composition

If tree elements are treated as immutable under MVCC to ensure concurrent access safety, then data consistency is improved, but storage space efficiency deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidstorage space efficiency
Core Design Contradiction:
Stability of the object's compositionVSLoss of substance

Solution Approach 1:

The patent implements automatic garbage collection that discards immutable tree elements that are no longer referenced by any active transaction or snapshot. By tracking references to tree elements across different versions and snapshots, the system recovers storage space from discarded elements while maintaining data consistency through the immutable nature of active tree elements under MVCC.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10776426B1Capacity management for trees under multi-version concurrency control
Publication Date: 2020.09.15 EMC IP HLDG CO LLC
  • US10776426B1 patent drawing
  • US10776426B1 patent drawing
  • US10776426B1 patent drawing

AI summary

Capacity management is provided for a plurality of search trees under multi-version concurrency control. A non-volatile memory includes a plurality of chunks that are fixed-sized blocks of the non-volatile memory, each chunk including at least one page. The non-volatile memory stores the plurality of search trees, each search tree having elements including a tree root, a tree node and a tree leaf. Each element of the tree is at a different level of the search tree: a first level including the tree root, a second level including the tree node, and a third level including the tree leaf. The plurality of chunks includes a number of chunk types, each chunk type for storing the element from a different level of the search tree, such that elements from different levels are stored in separate chunks.