Distributed Storage Controller Virtual Queue Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, the performance is degraded due to insufficient IO upper limit values for coupled drives when shared among multiple controllers, leading to errors and overheads in Drive-IO transfers, especially when the number of controllers increases, and when actual queue groups become full, preventing Drive-IO transfers to non-coupled drives.
Innovation Solution
Implementing a distributed storage system with virtual and actual queue management, where each controller manages virtual and actual queues for coupled and non-coupled drives, allowing for dynamic adjustment of virtual upper limit values to accommodate Drive-IOs, ensuring efficient transfer and utilization of resources across controllers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the IO upper limit value for the CTL is set by dividing the IO upper limit value for the coupled drive by the number of CTLs sharing the coupled drive, then the coupled drive is protected from overload, but the CTL performance is not sufficiently exerted and Drive-IOs cannot be issued even when the coupled drive is available
Solution Approach 1:
The patent segments the queue management into two independent queues: a first queue for accumulating Drive-IOs destined for coupled drives, and a second queue for accumulating Drive-IOs destined for non-coupled drives. This segmentation allows each queue to have its own independent upper limit value, enabling the first queue to use a lower limit for reliability while the second queue can use a higher limit to improve overall CTL performance utilization.
Solution Approach 2:
The patent changes the parameter of queue upper limit values by applying different limits to different queues. The first queue (for coupled drives) uses an IO upper limit value for the CTL that is lower than or equal to the coupled drive's limit, while the second queue (for non-coupled drives) uses a higher IO upper limit value, allowing the CTL to accumulate more Drive-IOs for transfer to other CTLs without being constrained by the coupled drive's lower limit.
2Reliability
If the actual queue group corresponding to the drive is full, then the Drive-IO cannot be transferred to non-coupled drives, but this causes overhead and performance degradation due to retries
Solution Approach 1:
The patent segments the queue management system into multiple independent queues (first queue for coupled drives, second queue for non-coupled drives) with different upper limit values. This segmentation allows the second queue to accumulate Drive-IOs beyond the coupled drive's limit, enabling continuous transfer operations to non-coupled drives without being blocked by the first queue's full condition, thus reducing retries and improving transfer efficiency.
Solution Approach 2:
The patent implements dynamic queue management where the CTL monitors the full condition of the first queue and dynamically transfers Drive-IOs to the second queue when the first queue is full. This dynamic adjustment allows the system to maintain reliable data transfer to coupled drives while simultaneously enabling efficient transfer to non-coupled drives, preventing performance degradation from retries.
3Reliability
If the number of CTLs sharing a coupled drive increases, then the IO upper limit value for each CTL decreases, but this leads to higher probability of Drive-IO issuance failures even when the coupled drive is available
Solution Approach 1:
The patent segments Drive-IO accumulation into two independent paths: one through the first queue for coupled drives with strict limit enforcement, and another through the second queue for non-coupled drives with higher limits. This segmentation allows CTLs sharing coupled drives to maintain reliable protection while still being able to issue Drive-IOs for non-coupled drives without being constrained by the reduced per-CTL limit, thereby improving issuance success rate.
Solution Approach 2:
The second queue acts as an intermediary buffer that receives Drive-IOs from the first queue when the first queue is full. This intermediary mechanism allows the system to decouple the strict limit enforcement for coupled drives from the overall CTL performance, enabling Drive-IOs to be accumulated and transferred through the second queue even when the first queue reaches its lower limit, thus improving issuance success rate without compromising coupled drive protection.
Data Source
AI summary
Each node constituting a distributed storage system includes one or more controllers. Each controller includes an actual queue group for each drive physically coupled to the controller, and a virtual queue group for each of a plurality of drives. A Drive-IO issued by any controller and received is accumulated in the actual queue group corresponding to an issue destination drive of the Drive-IO after accumulated in the virtual queue group corresponding to the issue destination drive.


