Credit-Based Write Throttling for Storage Read Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage clusters, the increase in write operations leads to increased latency for read operations due to high data transfer rates, causing read starvation, necessitating effective bandwidth management to balance write and read performance.
Innovation Solution
A credit-based throttling system is implemented across storage nodes, allocating bandwidth as 'credits' to write-type operations, with periodic distribution and shuffling of credits to ensure steady completion of writes while maintaining consistent read performance by limiting total write bandwidth and throttling specific write types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If write operations are allowed to proceed at high data transfer rates, then write throughput is improved, but read latency increases and read operations may be starved
Solution Approach 1:
The patent implements periodic credit distribution cycles where credits are allocated to write operations at regular intervals. This periodic action prevents continuous high-rate writes by pacing them across time boundaries, ensuring that read operations can access storage devices during intervals between credit distributions, thereby reducing read latency while maintaining write throughput over time
Solution Approach 2:
The patent introduces a credit-based throttling mechanism as an intermediary between write requests and storage devices. Credits act as a mediator that controls the flow of write operations, allowing the system to regulate write bandwidth dynamically without directly blocking write requests, thus maintaining write throughput while preventing read starvation
2Productivity
If bandwidth is allocated to write operations, then write completion rate is improved, but available bandwidth for read operations decreases
Solution Approach 1:
The patent implements dynamic bandwidth allocation where credit distribution weights for different write types can be adjusted based on system conditions. The throttling mechanism dynamically adapts to changing workload patterns, allocating bandwidth to writes when capacity is available while automatically reducing write bandwidth when read performance degrades, thus balancing write completion rate and read speed
Solution Approach 2:
The patent changes the parameter of write bandwidth allocation by using credit-based control to modulate write throughput. By adjusting credit distribution parameters and thresholds, the system can control the amount of bandwidth consumed by writes, ensuring that write operations receive sufficient bandwidth for completion while leaving adequate bandwidth for read operations to maintain their speed
3Productivity
If multiple write types are serviced simultaneously, then overall write throughput is improved, but it becomes difficult to maintain minimum bandwidth guarantees for each write type
Solution Approach 1:
The patent segments write operations into different write types (e.g., client writes, data migration writes, block transfer writes, recycling writes) and creates separate throttling mechanisms for each type. This segmentation allows the system to service multiple write types simultaneously while maintaining independent credit pools and minimum bandwidth guarantees for each type, preventing any single write type from monopolizing bandwidth
4Loss of time
If write operations are throttled to reduce read latency, then read performance is improved, but write throughput decreases
Solution Approach 1:
The patent applies partial throttling where not all write operations are restricted equally. Instead, credit-based control allows a controlled amount of write throughput to proceed while throttling only the excess that would cause read starvation. This partial action approach maintains sufficient write throughput to meet completion rate requirements while reducing read latency by preventing excessive write bandwidth consumption
Data Source
AI summary
A technique manages bandwidth allocated among input/output operations, such as reads and writes, to storage devices coupled to storage nodes of a cluster. The technique balances the writes in a manner that reduces latency of reads, while allowing the writes to complete in a desired amount of time. The writes include write types, such as client writes, data migration writes, block transfer writes, and recycling writes, which are defined by differing characteristics and relative priorities. To ensure timely completion of the write types, the technique provides periodic time intervals over which the writes may be balanced and allocated sufficient bandwidth to access the storage devices. The time intervals may include shuffle intervals within a larger distribution interval. In addition, the technique throttles certain write types at the storage device level to maintain consistent read performance. Throttling is based on a credit system that allocates bandwidth as “credits” based on write type.


