Distributed Storage Access Control with Lock-Free Command Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed data storage systems face performance issues due to high contention for locks during host access control command processing, leading to reduced performance and impractical concurrency in handling host I/O requests, especially when serving a large number of storage volumes.
Innovation Solution
The technology stores access control data in each storage server, including volume descriptors and an index array, allowing for atomic operations to update and read reservation and registration data without locks, enabling concurrent processing of host I/O requests and access control commands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional lock-based access control is used to ensure data consistency, then operational correctness is maintained, but system performance and concurrency are reduced due to high lock contention
Solution Approach 1:
The patent segments the access control data for each storage volume into separate 64-bit words, where each word contains specific fields (reservation type, reservation holder, registrants bitmap). This segmentation allows different parts of the data to be accessed and modified independently using atomic operations, eliminating the need for locks and enabling concurrent access without compromising data consistency.
Solution Approach 2:
The patent replaces the mechanical lock-based synchronization mechanism with atomic read-modify-write operations on 64-bit words. Instead of using locks to prevent concurrent access, the system uses atomic instructions that guarantee consistent reads and writes without requiring lock acquisition, thereby eliminating lock contention while maintaining operational correctness.
2Adaptability or versatility
If multiple hosts access multiple storage volumes simultaneously, then system versatility and service capability are improved, but lock contention increases and concurrency becomes impractical
Solution Approach 1:
By segmenting access control data into independent 64-bit words with specific fields for different access control aspects, the patent enables fine-grained concurrent access. Multiple hosts can simultaneously access different storage volumes or even the same volume with different access patterns without interfering with each other, as each operation works on specific segmented data portions using atomic instructions.
Solution Approach 2:
The patent creates a universal access control mechanism that handles multiple types of access control commands (REGISTER, UNREGISTER, ACQUIRE_RESERVATION, PREEMPT_RESERVATION, RELEASE_RESERVATION) and supports multiple hosts accessing multiple storage volumes simultaneously. The same atomic operation framework serves all these diverse access patterns, providing both versatility and high concurrency efficiency.
3Device complexity
If access control data is stored in a centralized manner, then data consistency is simplified to manage, but access latency and contention increase
Solution Approach 1:
The patent stores access control data in a segmented format within each storage server's memory, with each storage volume's data organized as separate 64-bit words. This segmentation allows the data to be stored in a simple, consistent manner across distributed servers while enabling fast, lock-free atomic operations. Each storage server independently manages its own segmented data structures, eliminating centralized coordination overhead and reducing access latency.
Data Source
AI summary
Access control data stored in the storage servers of a distributed data storage system is modified according to received access control commands and accessed to process host I/O requests without requiring the use of locks. Processing of certain access control commands includes allocating a new volume descriptor to store the updated access control data for a corresponding storage volume, and remapping the storage volume to the new volume descriptor with a single write operation. Each volume descriptor stores both reservation type and reservation holder data for the corresponding storage volume within a single memory register, allowing host I/O request processing logic to read both reservation type and reservation holder using a single read operation, and access control command processing logic to modify both reservation type and reservation holder using a single write operation. A registrants bitmap in the volume descriptor represents hosts registered for the corresponding storage volume.


