Dynamic Block Allocation for Cache Flushes in Multi-Node Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-node data storage systems face inefficiencies due to static assignment of physical blocks for cache flushes, leading to inflexible resource utilization under dynamic conditions.

Innovation Solution

Maintaining an allocation history for each node to track non-quarantined and quarantined physical blocks, preventing reallocation until after completion of cache flush operations, ensuring only unused blocks are reallocated.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If static assignment of physical blocks to individual nodes is used, then node-specific resource allocation is simplified, but system flexibility and resource utilization efficiency deteriorate under dynamic conditions

Engineering Contradiction:
Improvesimplicity of block allocationVSAvoidsystem flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic block allocation by maintaining allocation histories at each node that track which physical blocks are currently in use. When a node needs blocks for cache flush operations, it dynamically queries the allocation history to identify available blocks and requests allocation. The allocator dynamically assigns blocks based on current system state, allowing the allocation scheme to adapt to changing workloads and node requirements, thereby resolving the contradiction between allocation simplicity and system flexibility.

Inventive Principle:
Principle #15Dynamics

2Stability of the object's composition

If static assignment of physical blocks is used, then resource allocation is predetermined, but resource utilization efficiency deteriorates due to contention and inability to adapt to changing conditions

Engineering Contradiction:
Improvepredetermined allocation stabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent implements feedback mechanisms through allocation histories maintained at each node, which continuously track the status of physical blocks. When nodes request blocks for cache flush operations, the allocator receives feedback about current block usage and dynamically adjusts allocations. This feedback loop enables the system to optimize resource utilization by allocating blocks to nodes that need them most, rather than relying on static predetermined assignments, thereby improving productivity while maintaining controlled stability.

Inventive Principle:
Principle #23Feedback

3Productivity

If physical blocks are reallocated quickly to improve resource utilization, then resource efficiency improves, but cache flush operations may be delayed causing data loss risk

Engineering Contradiction:
Improveresource reallocation efficiencyVSAvoidcache flush completion
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary action by maintaining allocation histories that track which physical blocks are currently allocated and which are available before new allocation requests are processed. When a node requests blocks for cache flush operations, the system can immediately identify available blocks from the pre-maintained allocation history, enabling quick allocation without delaying the cache flush operation. This preliminary tracking ensures both high resource utilization and reliable cache flush completion.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If allocation history tracking is implemented for all nodes, then resource allocation accuracy improves, but system complexity increases

Engineering Contradiction:
Improveblock allocation tracking accuracyVSAvoidallocation management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements segmentation by maintaining separate allocation histories at each individual node rather than a single centralized tracking system. Each node maintains its own history of allocated and available physical blocks, which simplifies the implementation at each node while providing system-wide allocation visibility through the combination of all node histories. This segmented approach improves tracking accuracy while managing complexity through distributed rather than centralized management.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11216195B1Sharing blocks of non-volatile data storage to support cache flushes in a multi-node data storage system
Publication Date: 2022.01.04 EMC IP HLDG CO LLC
  • US11216195B1 patent drawing
  • US11216195B1 patent drawing
  • US11216195B1 patent drawing

AI summary

An allocation history is maintained for each node in a multi-node data storage system. The allocation history for each node indicates sets of physical blocks previously allocated to the node to store dirty pages of user data flushed from a cache of the node. The allocation history indicates non-quarantined sets of physical blocks that are currently being used to provide non-volatile data storage to cache flush operations, and quarantined sets of physical blocks not currently being used to provide non-volatile data storage to cache flush operations. Allocation is prevented to any node of any set of physical blocks that is indicated as non-quarantined by any of the allocation histories, and of any set of physical blocks that is indicated as quarantined by any of the allocation histories.