Distributed Storage Latency Assignment for IO Smoothing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems experience latency spikes during input/output processing intervals, leading to inefficiencies and reduced user experience due to uneven distribution of IO operations, resulting in underutilization of resources and increased latency.

Innovation Solution

The system calculates a target latency for IO operations by determining a target number of IO operations per second and assigning latency to each operation based on the target latency, allowing for even distribution of processing over the IO processing interval, thereby smoothing out latency spikes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If IO operations are processed without latency assignment, then processing speed is maintained, but latency spikes occur and resource utilization becomes uneven

Engineering Contradiction:
ImproveIO processing throughputVSAvoidlatency spike
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary latency assignment to IO operations when they are received, calculating and setting target latencies before the IO processing interval begins. This preliminary action ensures that latency is distributed evenly across all IO operations from the start, preventing latency spikes during processing while maintaining throughput.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If IO operations are processed without latency distribution, then immediate processing is achieved, but resource utilization becomes uneven and efficiency decreases

Engineering Contradiction:
Improveprocessing simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system changes the latency parameter of each IO operation individually based on its reception time and the target latency calculation. By adjusting this temporal parameter, the system achieves even distribution of IO operations across the processing interval, maximizing resource utilization efficiency while maintaining operational simplicity through automated parameter adjustment.

Inventive Principle:
Principle #35Parameter changes

3Duration of action of moving object

If latency is not assigned to IO operations, then processing interval is reduced, but latency distribution becomes uneven causing spikes

Engineering Contradiction:
ImproveIO processing intervalVSAvoidlatency distribution uniformity
Core Design Contradiction:
Duration of action of moving objectVSStability of the object's composition

Solution Approach 1:

The system uses feedback from the target latency calculation to adjust the latency assignment for each incoming IO operation. By continuously monitoring the relationship between reception time and target latency, the system dynamically assigns appropriate latency values, ensuring uniform distribution across the processing interval while maintaining interval duration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11861176B2Processing of input/ouput operations by a distributed storage system based on latencies assigned thereto at the time of receipt
Publication Date: 2024.01.02 NETAPP INC
  • US11861176B2 patent drawing
  • US11861176B2 patent drawing
  • US11861176B2 patent drawing

AI summary

Systems and methods are described for smoothing-out latency of IO operations processed by a distributed storage system. In some examples, latency is distributed among IO operations to more evenly spread processing of the IO operations over an IO processing interval. A target latency for IO operations for a volume of a distributed storage system is periodically calculated each sample period based on the number of IO operations to be processed during the next IO processing interval for the volume. As IO operations are received for the volume, a latency may be associated with the IO operation based on the target latency and the IO operation may be queued or synchronously processed as appropriate. Responsive to expiration of a time period that is based on at time at which a given IO operation at the head of the queue was received and the assigned latency, the given IO operation is dequeued and processed.