MVCC Tree Capacity Management via Level-Based Chunking
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Productivity
If copying garbage collection is used to manage fragmentation, then storage utilization is improved, but resource consumption increases
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.
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
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.
Data Source
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.


