QoS Enforcement via Atomic Credit Deduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in efficiently enforcing Quality of Service (QoS) policies for host Input/Output (I/O) commands, particularly in managing credits and reducing contention for shared QoS resources.

Innovation Solution

The implementation of a QoS enforcement mechanism that utilizes QoS buckets, each containing a credit count, a wait queue, and a lock flag, to manage host I/O commands. This system performs atomic operations to process commands when credits are available, generates new credits based on policy and time, and uses a lock flag to manage concurrent access and credit generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional locking mechanisms are used to enforce QoS policies on shared QoS resources, then credit count accuracy and policy enforcement reliability are improved, but system throughput and processing bandwidth deteriorate due to contention and serialization

Engineering Contradiction:
ImproveQoS policy enforcement accuracyVSAvoidI/O command processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the locking mechanism from the critical path of I/O command processing. By removing the lock acquisition step that previously serialized access to QoS buckets, the system allows multiple threads to process commands concurrently without compromising credit count accuracy, thus resolving the contradiction between reliability and productivity

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary atomic operation that acts as a mediator between multiple threads accessing shared QoS resources. This atomic credit deduction operation ensures thread-safe access without requiring traditional locking, allowing concurrent processing while maintaining enforcement accuracy

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If atomic operations are used for credit deduction without locking, then processing speed and throughput are improved, but complexity of ensuring thread safety and credit accuracy increases

Engineering Contradiction:
ImproveCommand processing speedVSAvoidThread safety mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent substitutes the mechanical locking system with an atomic operation-based approach. Instead of using locks that require acquisition, holding, and release operations, the system uses atomic read-modify-write operations on credit counts that inherently provide thread safety through hardware-supported atomicity, reducing operational complexity

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent changes the state representation by introducing a generation counter alongside the credit count. This parameter change allows threads to verify they are operating on current data without requiring locks, using simple integer comparisons instead of complex synchronization protocols

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12223168B1Quality of service (QoS) enforcement with low contention command processing
Publication Date: 2025.02.11 DELL PROD LP
  • US12223168B1 patent drawing
  • US12223168B1 patent drawing
  • US12223168B1 patent drawing

AI summary

Technology is disclosed for QoS (Quality of Service) enforcement with reduced contention. For commands where the QoS wait queue is empty and the QoS credit count is sufficient, an atomic operation subtracts the credits required to process the command from the QoS credit count without locking, and the command is processed. For other commands, credit generation is attempted by first reading a lock flag without obtaining a lock. If the lock flag is clear, an atomic operation sets it, and credit generation is performed if sufficient time has passed since a last credit generation. Credit generation stores a sum of the current QoS credit count and the number of newly generated credits into a local credit count, and processes commands in the QoS wait queue for which sufficient credits exist in the local credit count. When credit generation completes, the local credit count is stored into the QoS credit count.