Scalable Locking via Tree Data Structures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing solutions face challenges in efficiently managing locks in large and distributed storage systems, particularly in accommodating the increasing demand for locking as the number of clients grows, and in handling ranges of blocks effectively.
Innovation Solution
The implementation of tree data structures for lock management, where lock entries are stored in nodes that represent attributes, allowing for scalable locking by checking for conflicts and resolving pending locks, with the ability to grow or shrink based on demand, and using different granularity trees to reduce the amount of data checked for overlapping ranges.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the number of clients in a distributed storage system increases, then the demand for locking increases, but existing solutions cannot efficiently accommodate this demand
Solution Approach 1:
The patent divides the lock management system into multiple independent trees (e.g., first tree, second tree, third tree), each responsible for managing locks for specific ranges of data blocks. This segmentation allows the system to handle locking demands for different data ranges concurrently and independently, improving overall locking capacity and efficiency as the number of clients increases
2Quantity of substance
If ranges of blocks need to be locked for large data, then locking coverage is improved, but existing solutions face challenges in efficiently locking these ranges
Solution Approach 1:
The patent segments the data storage into multiple ranges, each managed by a separate tree data structure. This allows efficient range locking by operating on individual trees rather than processing the entire dataset, reducing the complexity of managing large data ranges while maintaining comprehensive coverage
Solution Approach 2:
The patent introduces a hierarchical dimension to lock management by using multiple trees at different levels, where each tree manages a specific subset of blocks. This dimensional approach transforms the complex problem of locking large ranges into simpler, more manageable sub-problems across multiple levels
Data Source
AI summary
Systems and methods for scalable locking. A method includes adding a first lock entry representing a pending lock to a first tree, the first lock entry indicating a range to be locked; checking at least a portion of at least one second tree to determine whether a conflicting lock exists for the first lock entry among at least one second lock entry based on the range to be locked, wherein each of the first tree and the at least one second tree is a data structure including a plurality of nodes representing at least a plurality of attributes, wherein the plurality of attributes of the at least one second tree includes the at least one second lock entry; committing the pending lock when no conflicting lock exists; and resolving the pending lock based on a resolution of the conflicting lock when a conflicting lock exists.


