In-band Extent Locking for Shared Non-Volatile Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Previous multi-node data storage systems experience significant latency due to the large number of messages exchanged for page locking, which degrades the performance of data storage services and hosts issuing I/O requests.
Innovation Solution
The technology implements in-band locking of extents containing multiple pages of shared non-volatile data storage, where a node can access multiple pages within an extent after obtaining an extent lock without requiring additional lock request and grant messages, reducing inter-node communication and latency by piggy-backing extent locking information onto page lock messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If individual page locks are used to prevent data corruption when multiple nodes access shared non-volatile data storage, then data consistency is maintained, but the number of messages exchanged between nodes increases significantly, introducing latency to I/O request processing
Solution Approach 1:
The patent combines extent lock information with page lock messages, allowing a single message to convey both the page lock request and the extent lock status. This merging eliminates the need for separate extent lock communication, reducing the total number of messages exchanged between nodes while maintaining data consistency through coordinated locking.
Solution Approach 2:
The lock request message is designed to serve multiple functions: it requests a page lock, conveys extent lock status, and enables extent-based locking coordination. By making the message multi-functional, the system reduces messaging overhead without sacrificing the reliability of data protection mechanisms.
2Loss of time
If extent locking is implemented to reduce messaging overhead, then I/O request processing latency is reduced, but the complexity of lock coordination between nodes increases
Solution Approach 1:
The system performs preliminary extent lock coordination by embedding extent lock information in the lock request message itself. This preliminary action allows nodes to determine extent lock status before processing the page lock request, simplifying the coordination logic and reducing the need for additional coordination messages while lowering latency.
Solution Approach 2:
The lock request message acts as an intermediary that carries extent lock information between nodes. This intermediary mechanism simplifies the coordination complexity by consolidating multiple pieces of locking information into a single communication vehicle, making the overall lock coordination process more manageable.
3Ease of operation
If multiple lock request messages are exchanged for each page access, then fine-grained locking control is achieved, but the quantity of inter-node communications increases, degrading system performance
Solution Approach 1:
The patent merges extent lock communication with page lock communication into a single message exchange. This combining maintains the precision of fine-grained locking control by still allowing node-level page locking while eliminating redundant extent lock messages, thereby reducing the total volume of inter-node communications without sacrificing locking control precision.
Data Source
AI summary
Techniques for in-band locking of extents containing multiple pages of shared non-volatile data storage are disclosed in which inter-node lock request messages indicate both an individual page for which a lock is requested and the multi-page extent that contains that page. A page lock or an extent lock is granted to the requesting node based on the time since the last access to the extent by the node to which the request was sent. A generation number may be maintained in each node and stored in the per-extent lock table entries and per-page lock table entries such that pages accessed by a node within an extent while the extent is in extent-locked access mode may subsequently be accessed by the node during a page-locked access mode for the extent occurring after the extent-locked access mode ends based on page locks created by the node during the extent-locked access mode.


