Storage Queue Virtualization for Overflow Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face inefficiencies in dynamic resource allocation for non-volatile memory resources across multiple hosts with varying workloads, leading to suboptimal utilization and potential queue overflows.
Innovation Solution
A connection virtualization layer dynamically allocates host storage connections and storage commands, enabling the pooling of resources and managing queue limits to prevent overflows by redirecting commands to available processing queues, thereby supporting more connections and commands than the individual devices' configured limits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a fixed number of queue-pairs and fixed storage command queue depths are allocated to each host storage connection, then the storage device can maintain stable operation within its processing capacity, but the system cannot efficiently support hosts with varying usage patterns and the allocated resources remain underutilized when not all queues are fully populated
Solution Approach 1:
The patent implements dynamic queue allocation where the storage controller can allocate and deallocate processing queues to different host storage connections based on real-time workload demands. Instead of fixed queue assignments, the system monitors queue depth and host activity to dynamically adjust which queues are active and how many commands each queue can hold, enabling efficient adaptation to varying usage patterns while maintaining stable operation.
Solution Approach 2:
The patent creates a pool of shared processing queues that can serve multiple host storage connections rather than dedicating specific queues to specific hosts. This universal queue pool allows any host to utilize any available queue based on current system conditions, maximizing resource utilization efficiency while providing flexibility for different workload patterns across multiple hosts.
2Adaptability or versatility
If the storage device supports a limited number of processing queues and queue depths as configured, then the device can operate within its processing capacity limits, but the system cannot support more connections or commands than the configured limits allow
Solution Approach 1:
The patent merges multiple processing queues into a unified queue pool that serves all host storage connections collectively. By combining the capacity of individual queues into a shared resource pool, the system can support a greater total number of connections and commands than any single configured queue limit would allow, while maintaining reliability through centralized monitoring and dynamic allocation that prevents any single queue from overflowing.
Solution Approach 2:
The patent introduces a virtualization layer that decouples the logical view of queue resources from the physical queue structures. This dimensional transformation allows the system to present an expanded namespace of available queues to hosts while mapping these logical queues to a smaller set of physical queues behind the scenes, enabling support for more connections and commands than the physical hardware limits would normally permit.
3Ease of operation
If queue-pairs are allocated on a one-to-one basis to host storage connections, then the allocation is simple and deterministic, but the system cannot efficiently support hosts with varying usage patterns particularly if hosts are not diligent about load balancing
Solution Approach 1:
The patent introduces a virtualization layer as an intermediary between hosts and physical queues that manages queue allocation dynamically. This intermediary maintains simple host-to-queue mappings from the host perspective while performing complex dynamic allocation and load balancing operations internally, preserving ease of operation for hosts while dramatically improving storage resource utilization efficiency through intelligent queue assignment.
Solution Approach 2:
The patent implements automatic load balancing where the storage controller monitors queue depths and host activity patterns to dynamically adjust queue allocations without requiring host intervention. The system automatically redirects commands between queues based on current utilization, eliminating the need for hosts to be diligent about their own load balancing while maintaining simple operation for the hosts.
Data Source
AI summary
Systems and methods for managing queue limit overflow for data storage device arrays are described. Host storage connections are allocated by host connection identifier and storage device processing queues are allocated by completion connection identifier through a connection virtualization layer. Storage commands may be directed to a processing queue based on the host connection identifier. Responsive to determining that the processing queue has reached its queue depth limit, another processing queue is determined for receiving the storage command without indicating processing queue overflow to the host device.


