Lock-Free B-Tree Node Search Using Update Time Value Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional tree index data structures face inefficiencies in concurrency and risk of deadlocks due to the need for locks to maintain data compatibility during structural changes, limiting simultaneous access by multiple processes.
Innovation Solution
A node searching method that determines the progression or retry of traversing operations based on a comparison between the update time value and traversing time value of searched nodes, allowing concurrent access without locks by re-performing traversals from the root node or a parent node if the update time value exceeds the traversing time value, and terminating at leaf nodes with no descendent nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If lock function is used to protect data compatibility of tree index during structural changes, then data compatibility is maintained, but concurrency efficiency deteriorates and deadlock risk increases
Solution Approach 1:
The patent extracts the lock function from the tree index search process entirely. Instead of using locks to protect data compatibility during structural changes, the invention uses version information (update time values) embedded in nodes to detect changes and retry searches without blocking other processes. This removes the concurrency bottleneck while maintaining data compatibility through version checking.
Solution Approach 2:
The patent replaces the mechanical lock system with a version-based detection and retry mechanism. Instead of physically blocking access through locks, the system uses temporal information (update time values) to logically detect structural changes and determines whether retries are necessary, substituting a blocking mechanical approach with a non-blocking informational approach.
2Reliability
If lock function is used to maintain data compatibility, then data integrity is ensured, but the system falls into deadlock risk
Solution Approach 1:
The patent removes the lock mechanism that causes deadlocks while preserving data integrity through version checking. By extracting the locking function and replacing it with update time value comparisons, the system eliminates the circular wait condition that causes deadlocks while still ensuring data integrity through version-based detection of structural changes.
3Ease of operation
If conventional tree index traversal is used, then search operation is simple, but it blocks concurrent access during index splits
Solution Approach 1:
The patent introduces dynamic version checking into the static tree index traversal process. The search operation dynamically checks update time values at each node during traversal to detect structural changes. This allows the system to adapt to concurrent modifications without blocking, maintaining simplicity while enabling concurrent access through dynamic version awareness.
Solution Approach 2:
The patent performs preliminary version checking before and during traversal operations. By checking update time values in advance and during the search process, the system can detect structural changes before they affect the search results, allowing simple traversal logic to remain unchanged while adding concurrency safety through preliminary version verification.
Data Source
AI summary
A node search method, comprising: setting a current time value as a traversing time value; searching descendent nodes to perform a traversing from a root node to a leaf node according to a tree index data structure; determining whether a preset traversing condition is satisfied by comparing an update time value, which indicates a time when a change to a searched descendent node is made, with the traversing time value; depending on whether the traversing proceeding condition is satisfied, re-performing a traversing from a parent node or continuing traversing to the searched descendent node; and terminating the traversing at a leaf node where no descendent node exists.


