Queue Demultiplexor Size Grouping for Storage I/O Bottlenecks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage controllers face inefficiencies in processing I/O requests due to the need for re-ordering and scheduling, which can lead to blocking of larger requests by smaller ones and require complex logic to handle logical objects' dependencies, especially when dealing with multiple clients and varying I/O sizes.
Innovation Solution
Implementing multiple submission queues associated with virtual ports, each with specific queue depths and I/O size ranges, allowing clients to select the appropriate queue for I/O requests, thereby eliminating the need for arbitration logic and reducing the storage controller's dependency on analyzing logical objects' dependencies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If the storage controller uses a single submission queue per physical port, then the system structure is simple, but larger I/O requests are blocked by smaller ones and processing efficiency deteriorates
Solution Approach 1:
The patent divides a single submission queue into multiple submission queues (first submission queue and second submission queue) based on I/O request size. Small I/O requests are directed to the first submission queue while large I/O requests are directed to the second submission queue, preventing small requests from blocking large requests and improving overall processing efficiency.
2Productivity
If the storage controller implements re-ordering and scheduling logic, then I/O requests can be processed in optimal order, but the controller logic becomes complex and requires analysis of logical objects' dependencies
Solution Approach 1:
The patent performs preliminary classification of I/O requests by size before they enter the submission queues. By pre-separating small and large I/O requests into different queues based on their size characteristics, the system eliminates the need for complex re-ordering and scheduling logic in the storage controller, as requests are already organized for optimal processing.
Solution Approach 2:
The patent extracts the classification and routing function from the storage controller to the client side. The client application or driver is responsible for determining I/O request size and selecting the appropriate submission queue, thereby removing the complex arbitration and scheduling logic from the storage controller and simplifying its design.
3Ease of operation
If the storage controller handles arbitration and scheduling, then I/O requests can be managed centrally, but context switching is required and system performance is reduced
Solution Approach 1:
The patent enables client applications or drivers to self-manage I/O request submission by directly placing requests in the appropriate submission queues based on request size. This self-service approach eliminates the need for the storage controller to perform context switching and arbitration, thereby improving system performance while maintaining organized I/O request handling.
Data Source
AI summary
A method for writing data to submission queues in a storage controller including receiving an input/output (I/O) request from a client application, where the client application is associated with a virtual port and where the virtual port is associated with a physical port. The method further includes determining a size of the I/O request, identifying a queue group based on the size of the I/O request and the virtual port, where the queue group includes submission queues and is associated with the virtual port. The method further includes identifying a submission queue, sending the I/O request to a storage controller over the physical port, where the queue group is located in memory operatively connected to the storage controller and where the storage controller is configured to place the I/O request in the submission queue.


