Distributed QoS Management via Latency-Based Window Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing QoS management techniques for storage arrays are inefficient due to centralized throttling solutions that lead to substantial utilization losses and non-work-conserving behavior, particularly in distributed systems where storage arrays appear as 'black boxes' and are not easily configurable for resource allocation among multiple hosts accessing shared resources.
Innovation Solution
A method and system that manage IO request queues independently for each host, adjusting the window size based on current average latency to ensure fair distribution of resources and maintain low queuing delays while maximizing throughput, using an Exponentially Weighted Moving Average (EWMA) for latency calculation and an additive increase/multiplicative decrease (AIMD) policy for window size adjustment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If centralized throttling solutions are used to manage QoS for storage arrays, then resource allocation control is simplified, but utilization losses increase and work-conserving behavior is compromised
Solution Approach 1:
The patent segments the centralized throttling function into distributed per-host issue queue managers. Each host independently manages its own issue queue using local latency measurements, eliminating the need for centralized coordination while maintaining QoS control. This segmentation resolves the contradiction by distributing complexity locally rather than centrally, preserving work-conserving behavior through independent host optimization.
Solution Approach 2:
Each host serves itself by autonomously managing its issue queue based on locally measured latency. The host uses its own latency measurements to adjust its issue queue window size without external intervention, making the system self-regulating. This self-service approach eliminates utilization losses associated with centralized throttling while keeping each host's management complexity low through autonomous operation.
2Reliability
If host-based throttling solutions with centralized monitoring are used, then QoS control is achieved, but communication costs increase substantially at finer granularity
Solution Approach 1:
The patent extracts the QoS control logic from centralized monitoring and places it within each host's issue queue manager. Each host independently measures its own latency and adjusts its issue queue window size locally, eliminating the need for continuous inter-host communication. This extraction maintains QoS control accuracy while dramatically reducing communication overhead to minimal local operations.
Solution Approach 2:
The system implements local feedback where each host measures its own latency and uses this feedback to adjust its issue queue window size. This closed-loop control at the host level eliminates the need for centralized monitoring and communication, achieving QoS control accuracy through local latency measurement and adjustment without substantial communication costs.
3Reliability
If strict throttling solutions are implemented to guarantee minimum service levels, then QoS guarantees are achieved, but efficiency losses increase and work-conserving behavior is lost
Solution Approach 1:
The patent implements dynamic issue queue window size adjustment based on measured latency rather than static throttling thresholds. Each host dynamically adjusts its window size in response to actual latency conditions, allowing flexible QoS guarantees that adapt to changing workload conditions. This dynamic approach maintains work-conserving behavior by allowing hosts to efficiently utilize available resources while still guaranteeing minimum service levels through latency-based control.
Data Source
AI summary
A method and system for providing quality of service to a plurality of hosts accessing a common resource is described. According to one embodiment, a plurality of IO requests is received from clients executing as software entities on one of the hosts. An IO request queue for each client is separately managed, and an issue queue is populated based on contents of the IO request queues. When a host issue queue is not full, a new IO request is entered into the host issue queue and is issued to the common resource. A current average latency observed at the host is calculated, and an adjusted window size is calculated at least in part based on the current average latency. The window size of the issue queue is adjusted according to the calculated window size.


