Snapshot Data Structure Level Lock for Storage Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In information processing systems, maintaining consistency between input/output (IO) accesses across multiple distributed processing modules is challenging due to the complexity of locking mechanisms, especially when using write caches, which can lead to competition for access to remapped logical addresses during snapshot operations.
Innovation Solution
Implementing a snapshot data structure level lock that locks the corresponding ILXAs of an entire snapshot data structure or multiple snapshot data structures during write and read operations, using a snapshot address (SLXA) defined as a combination of a snapshot data structure ID and an offset, to ensure data consistency and prevent competing accesses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a locking mechanism is implemented at the logical address level to ensure consistency between IO accesses, then data consistency is improved, but device complexity and contention increase due to the need to lock individual logical addresses during snapshot operations
Solution Approach 1:
The patent segments the locking mechanism into two distinct levels: snapshot data structure level locks (using SLXAs) and logical address level locks (using LXAs). This segmentation allows the system to apply different locking granularities to different parts of the system, reducing overall complexity by preventing unnecessary contention at the logical address level while maintaining data consistency through snapshot-level coordination.
Solution Approach 2:
The snapshot data structure level lock acts as an intermediary mechanism that mediates between multiple IO accesses and the snapshot data structure. By introducing this intermediate locking layer, the system can coordinate access to snapshot data without requiring every IO operation to contend for locks on individual logical addresses, thereby reducing device complexity and contention while preserving data consistency.
2Productivity
If write caches are used to improve IO performance, then productivity is improved, but contention increases between IO threads and destager threads accessing remapped logical addresses during snapshot operations
Solution Approach 1:
The patent segments the locking scope to distinguish between snapshot data structure access and logical address access. By implementing locks at the snapshot data structure level (SLXAs) rather than at the logical address level (LXAs), the system allows write caches to continue operating at full speed for logical address remapping while only requiring coordination at the snapshot level, thereby reducing contention between IO threads and destager threads while maintaining high IO performance.
3Adaptability or versatility
If snapshot operations remap logical addresses to improve data management, then adaptability is improved, but consistency between IO accesses deteriorates due to competition for access to remapped addresses
Solution Approach 1:
The patent implements preliminary locking of the snapshot data structure at the SLXA level before logical address remapping occurs. This preliminary action ensures that the snapshot data structure is protected from concurrent modifications during the remapping process, maintaining consistency between IO accesses while allowing the flexible logical address remapping operations to proceed without contention.
Data Source
AI summary
A storage system comprises a plurality of storage devices and an associated storage controller. The plurality of storage devices are configured to store a plurality of logical units (LUNs) and snapshot data structures associated with the plurality of LUNs. The storage controller is configured to determine a mapping of a logical address associated with a pending read or write operation to a snapshot address associated with a given snapshot data structure of the storage system that comprises a plurality of nodes generated during point-in-time snapshots taken based on at least one of the LUNs, lock at least a portion of the given snapshot data structure during the read or write operation based on the determined mapping, and release the lock on the at least a portion of the given snapshot data structure in response to a completion of the read or write operation.


