Dynamic Block Allocation for Cache Flushes in Multi-Node Storage
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
4Measurement precision
If allocation history tracking is implemented for all nodes, then resource allocation accuracy improves, but system complexity increases
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.
Data Source
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.


