Striped RAID Garbage Collection via Local Data Strip Copying
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Garbage collection in striped RAID storage systems is I/O intensive, leading to degraded performance, especially in shared storage systems and disaggregated architectures where data is not local to the storage control node, causing significant network traffic and resource allocation issues.
Innovation Solution
Implement an optimized garbage collection process where the storage control node identifies victim stripes with predominantly valid data, copies these data strips locally to empty stripes on the same storage device, reducing the need for I/O operations over the storage network and minimizing performance impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If garbage collection is performed on striped RAID storage volume, then storage performance is improved by defragmentation, but system performance deteriorates due to intensive I/O operations and resource allocation
Solution Approach 1:
The patent extracts the harmful I/O intensive operations from the traditional garbage collection process by identifying and separating victim stripes with predominantly valid data. These extracted stripes are copied locally without full I/O operations, removing the performance burden while maintaining defragmentation benefits
Solution Approach 2:
The patent applies local quality by performing local copy operations for victim stripes with predominantly valid data, rather than uniform treatment of all stripes. This localized approach reduces network traffic and I/O operations specifically where needed, improving overall system performance
2Productivity
If garbage collection is performed in disaggregated storage architecture, then storage performance is improved, but network traffic increases significantly
Solution Approach 1:
The patent extracts victim stripes with predominantly valid data from the network I/O path and performs local copy operations within the storage device. This extraction eliminates unnecessary network traffic while maintaining the garbage collection function
Solution Approach 2:
The patent introduces an intermediary mechanism that identifies victim stripes and routes them for local processing rather than network processing. This intermediary layer prevents network traffic generation for stripes that can be handled locally
3Stability of the object's composition
If traditional garbage collection processes all stripes uniformly, then defragmentation is achieved, but I/O operations and processing time increase
Solution Approach 1:
The patent segments the garbage collection process by categorizing stripes into different types (victim stripes with predominantly valid data, other stripes). This segmentation allows different processing approaches for different segments, reducing overall processing time while maintaining defragmentation effectiveness
Solution Approach 2:
The patent applies partial action by performing copy operations only on victim stripes with predominantly valid data, rather than processing all stripes uniformly. This partial processing reduces I/O operations and processing time while achieving sufficient defragmentation
Data Source
AI summary
A garbage collection process is performed in a storage system which comprises a storage control node, and storage nodes which implement a striped volume comprising a plurality of stripes having strips that are distributed over the storage nodes. The storage control node selects a victim stripe for garbage collection, and an empty stripe in the striped volume. The storage control node determines a data strip of the victim stripe having predominantly valid data based on a specified threshold, and sends a copy command to a target storage node which comprises the predominantly valid data strip, to cause the target storage node to copy the predominantly valid data strip to a data strip of the empty stripe which resides on the target storage node. The storage control node writes valid data blocks of the victim stripe to remaining data strips of the empty stripe, and releases the victim stripe for reuse.


