Dynamic Namespace Capacity Allocation in NVMe Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In thinly provisioned data storage systems, namespaces often experience uneven utilization due to varying application demands, leading to capacity starvation in some namespaces while others have unused capacity, as existing technologies lack the ability to dynamically reallocate non-volatile memory capacity within data storage devices.

Innovation Solution

A system with a namespace manager that allocates a portion of each namespace's capacity to a floating namespace pool, allowing namespaces with higher utilization to borrow capacity from underutilized ones, thereby reducing wasted capacity and improving overall resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If namespaces are allocated in fixed capacity blocks in thinly provisioned systems, then storage capacity can be added only as needed, but underutilized namespaces represent wasted capacity that cannot be reclaimed

Engineering Contradiction:
Improvecapacity allocation flexibilityVSAvoidwasted capacity
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

The patent implements dynamic capacity allocation by allowing namespaces to borrow capacity from a shared pool when they exceed their allocated capacity, and by enabling capacity to be reallocated from underutilized namespaces to namespaces that need it. This transforms the static fixed capacity blocks into a dynamic system where capacity can move between namespaces based on actual usage patterns, resolving the contradiction between allocation flexibility and capacity waste.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the capacity parameter from fixed to variable by introducing a capacity pool mechanism. Namespaces can have their effective capacity adjusted dynamically based on utilization patterns, allowing the system to adapt capacity allocation to actual demand while preventing capacity waste in underutilized namespaces.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If namespaces are allocated in fixed capacity blocks, then namespace capacity is determined at creation time, but capacity cannot be reallocated to address uneven utilization across namespaces

Engineering Contradiction:
Improvestorage capacity availabilityVSAvoidcapacity reallocation capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a dynamic capacity management system where namespaces can borrow capacity from a shared pool when needed and capacity can be reallocated from underutilized namespaces to those with higher demand. This dynamic mechanism allows the system to adapt to changing storage needs without requiring fixed capacity blocks, thereby improving both capacity availability and reallocation capability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback-driven capacity allocation by monitoring namespace utilization patterns and using this information to trigger capacity reallocation. When a namespace approaches capacity limits or when other namespaces have excess capacity, the system automatically adjusts allocations based on observed usage patterns, creating a self-regulating mechanism that improves both productivity and adaptability.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If thin provisioning is used to add capacity only as needed, then storage costs are reduced, but uneven namespace utilization creates capacity starvation for some namespaces while others have unused capacity

Engineering Contradiction:
Improvetotal storage capacityVSAvoidcapacity distribution fairness
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic capacity sharing mechanism where namespaces can borrow capacity from a common pool when they experience high demand, and capacity can be reallocated from underutilized namespaces to those with higher needs. This dynamic redistribution ensures more fair capacity distribution across all namespaces while maintaining the cost benefits of thin provisioning.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes capacity allocation from static to dynamic parameters, allowing the effective capacity of each namespace to adjust based on real-time utilization patterns. This enables the system to maintain fair capacity distribution across all namespaces while preserving the efficiency gains from thin provisioning, as capacity is allocated based on actual demand rather than fixed quotas.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240303114A1Dynamic allocation of capacity to namespaces in a data storage device
Publication Date: 2024.09.12 WESTERN DIGITAL TECHNOLOGIES INC
  • US20240303114A1 patent drawing
  • US20240303114A1 patent drawing
  • US20240303114A1 patent drawing

AI summary

Systems, methods, and data storage devices for dynamic allocation of capacity to namespaces are described. A data storage device may support multiple host connections to multiple namespaces allocated in its non-volatile storage medium according to a storage protocol, such as non-volatile memory express (NVMe). Each namespace may initially be allocated with an allocated capacity. For at least some of the namespaces, a portion of the allocated capacity may be allocated to a floating namespace pool. When the fill mark for one of the namespaces reaches a flexible capacity threshold, capacity from the floating namespace pool may be dynamically allocated to that namespace and removed from the floating namespace pool.