Data Block Rejection Policies for Low-Amplification Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing garbage collection (GC) and wear-leveling processes in solid-state storage devices increase write amplification and affect performance by repeatedly writing data, reducing the service life of the storage device and occupying read/write bandwidth.
Innovation Solution
A method for selecting data blocks for garbage collection based on selection and rejection policies, including choosing blocks with maximum valid data, minimal changes, and considering data hotness or coldness, to optimize GC and wear-leveling processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If garbage collection is performed on all dirty data blocks, then storage device reliability is improved, but write amplification increases and device lifespan decreases
Solution Approach 1:
The patent changes the selection parameters for garbage collection by introducing a rejection policy that evaluates multiple criteria (valid data amount, change amount, hotness/coldness) before selecting blocks for collection. This selective approach based on parameter evaluation reduces unnecessary write operations while maintaining reliability.
Solution Approach 2:
Instead of performing garbage collection on all dirty data blocks, the patent applies partial action by selectively collecting only those blocks that meet specific criteria (low valid data amount, low change amount, cold data). This reduces the overall write amplification while still maintaining storage reliability through targeted collection.
2Reliability
If garbage collection is performed frequently, then storage device reliability is improved, but read/write bandwidth is occupied and user IO performance deteriorates
Solution Approach 1:
The patent applies local quality by differentiating between hot data and cold data, and treating different data blocks differently based on their characteristics. Cold data blocks with low valid data amounts are selected for collection, while hot data blocks are preserved, thereby maintaining user IO performance while ensuring reliability through selective garbage collection.
Solution Approach 2:
The system performs self-service by automatically evaluating and selecting appropriate candidate blocks for garbage collection based on predefined policies (selection policy and rejection policy). This automated selective process ensures reliability without requiring manual intervention and minimizes impact on user IO performance.
3Productivity
If data blocks with high valid data amount are selected for GC, then GC efficiency is improved, but write amplification increases due to repeated writing
Solution Approach 1:
The patent fundamentally changes the selection parameter from valid data amount to its opposite (low valid data amount) combined with low change amount. This parameter inversion ensures that blocks selected for collection require minimal writing operations, thereby improving GC efficiency while reducing write amplification and energy loss.
4Duration of action of stationary object
If wear-leveling is performed aggressively, then device lifespan is improved, but write amplification increases and affects GC performance
Solution Approach 1:
The patent merges the garbage collection process with wear-leveling by selecting candidate blocks that satisfy both GC requirements (dirty data blocks) and wear-leveling considerations (low valid data amount, low change amount). This integrated approach achieves device lifespan extension through wear-leveling while minimizing write amplification by selecting blocks that naturally require less rewriting.
Data Source
AI summary
The present application relates to a garbage collection method and a storage device for reducing write amplification. A method for selecting a data block to be collected in garbage collection, including: obtaining, according to a first selection policy, a first data block to be collected; determining, according to a first rejection policy, whether to refuse to collect the first data block to be collected; and if according to the first rejection policy, rejection to collect of the first data block to be collected is determined, not performing garbage collection on the first data block to be collected.


