QoS Enforcement via Atomic Credit Deduction
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
Data Source
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.


