Storage Queue Virtualization for Overflow Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvestorage resource utilization efficiencyVSAvoidflexibility to support varying host usage patterns
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improvenumber of supported connections and commandsVSAvoidqueue overflow prevention
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvesimplicity of queue allocationVSAvoidstorage resource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20220391136A1Managing Queue Limit Overflow for Data Storage Device Arrays
Publication Date: 2022.12.08 WESTERN DIGITAL TECHNOLOGIES INC
  • US20220391136A1 patent drawing
  • US20220391136A1 patent drawing
  • US20220391136A1 patent drawing

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.