Dynamic Tree Management for Multi-Version Concurrency Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems using B+ tree data structures with multi-version concurrency control face scalability issues due to a fixed number of trees, leading to inefficiencies in resource management and data access as the system grows.
Innovation Solution
Implementing a new tree management approach called Search Forest, where the number of trees increases dynamically based on the number of nodes in the cluster, using a balancing coefficient to ensure efficient load balancing and scalability through instant tree splitting and garbage collection, without disrupting service.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the number of trees is fixed in the current system, then the system structure is simple and stable, but the system scalability deteriorates as the cluster grows
Solution Approach 1:
The patent implements dynamic tree management where the number of trees in the search forest changes based on cluster size. Trees are dynamically created, split, or merged according to a balancing coefficient that reflects the current number of nodes in the cluster, allowing the system to adapt its structure to match its operational scale.
Solution Approach 2:
The search forest is segmented into multiple individual trees that can be independently managed. Each tree can be split into smaller trees or merged with other trees based on load requirements, allowing flexible reconfiguration of the data structure to optimize for the current cluster size while maintaining manageable complexity through modular organization.
2Adaptability or versatility
If the number of trees increases dynamically based on cluster size, then system scalability improves, but the complexity of tree management increases
Solution Approach 1:
The system implements self-service tree management through automated algorithms that monitor cluster size and automatically perform tree operations. The balancing coefficient drives automatic tree splitting, merging, or creation without manual intervention, allowing the system to self-adjust its structure in response to growth or shrinkage while maintaining operational simplicity for users.
Solution Approach 2:
The patent employs feedback mechanisms where the system continuously monitors the number of nodes in the cluster and uses this information to adjust the number of trees. The balancing coefficient serves as a feedback parameter that triggers appropriate tree management actions, creating a closed-loop system that automatically responds to changes in cluster size and maintains optimal performance.
3Reliability
If trees are split instantly to accommodate growth, then service continuity is maintained, but the complexity of maintaining load balance increases
Solution Approach 1:
The system performs preliminary actions by pre-calculating the balancing coefficient based on expected cluster size changes. Before actual tree splitting occurs, the system prepares the necessary data structures and planning logic, allowing trees to be divided in a controlled manner that maintains service continuity while managing the complexity of load distribution across the resulting trees.
Data Source
AI summary
Method for tree management of trees under multi-version concurrency control is described herein. Method starts by detecting change in a size of a cluster. The number of nodes in the cluster is counted to obtain the changed size of the cluster. The number of trees needed for the number of nodes in the cluster is determined. The number of trees may be based on the number of nodes in the cluster and predetermined system balancing coefficient. When the number of trees needed is greater than existing number of trees, existing number of trees is doubled as a single-step operation which includes modifying and scaling hash function used to derive each tree to generate new hash function and using new hash function to partition each tree instantly into two new trees. Scaling happens on demand without service disruption. Hash function scales automatically when number of trees increases. Other embodiments are described.


