Quasi-Compacting Garbage Collection for Storage Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current garbage collection processes in distributed computing systems face inefficiencies in capacity reclamation, particularly when free blocks are not effectively utilized, leading to fragmentation and reduced throughput, especially when users delete data while there is available capacity, resulting in minimal or no gain in free space and potential decreases in available capacity.
Innovation Solution
The implementation of a quasi-compacting garbage collection technique that identifies and verifies available free blocks, ignores blocks below a threshold size, shortens larger blocks to standard sizes, and creates composite chunks from free blocks without moving data, allowing for efficient capacity reclamation and increased use of storage space without physical data movement.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If traditional garbage collection processes are used to reclaim capacity, then free space is recovered, but fragmentation occurs and throughput decreases when users delete data while capacity is available
Solution Approach 1:
The system performs preliminary verification of free blocks before reclamation, checking if they can be safely reclaimed without affecting active data operations. This preliminary action prevents fragmentation by identifying suitable blocks in advance, thereby maintaining throughput while recovering capacity.
Solution Approach 2:
The garbage collection process segments the verification and reclamation operations into distinct phases: identifying free blocks, verifying their reclamation safety, and then reclaiming them. This segmentation allows selective reclamation of blocks that won't cause fragmentation, preserving system throughput.
2Productivity
If free blocks are reclaimed without verification, then capacity reclamation is fast, but data reliability may be compromised
Solution Approach 1:
The system performs preliminary verification of free blocks to determine if they can be safely reclaimed before actually reclaiming them. This verification step ensures data reliability by checking that reclamation won't affect active operations, while still maintaining relatively fast reclamation speeds through efficient verification algorithms.
Solution Approach 2:
The verification process provides feedback about the safety of reclamation for each free block. Based on this feedback, the system selectively reclaiming blocks that are safe to reclaim while skipping those that aren't, thereby maintaining both reliability and efficiency.
3Quantity of substance
If all free blocks are reclaimed regardless of size, then maximum capacity is recovered, but small blocks below threshold waste processing resources
Solution Approach 1:
The system applies different treatment to free blocks based on their size characteristics. Blocks below a threshold size are ignored or handled differently, while larger blocks undergo full verification and reclamation. This local quality approach optimizes processing resources by focusing effort on blocks that provide meaningful capacity recovery.
Solution Approach 2:
The system changes the processing parameters (verification depth, reclamation action) based on the size parameter of each free block. By adjusting these parameters according to block size, the system efficiently recovers significant capacity while minimizing processing overhead on insignificant small blocks.
4Productivity
If composite chunks are created from free blocks, then storage space utilization improves, but system complexity increases
Solution Approach 1:
The system merges multiple free blocks into composite chunks, improving storage space utilization by creating larger contiguous allocation units. This merging operation is performed systematically by identifying compatible free blocks and combining them, thereby enhancing space efficiency while managing complexity through structured procedures.
Solution Approach 2:
The chunk creation process is segmented into distinct steps: identifying candidate free blocks, verifying their compatibility, and then merging them into composite chunks. This segmentation manages system complexity by breaking down the complex merging operation into manageable, verifiable stages.
Data Source
AI summary
A method, computer program product, and computer system for identifying, by a computing device, a plurality of used chunks, wherein the plurality of used chunks may include a plurality of free blocks and at least one non-free block. A capacity of the plurality of free blocks that is available to reclaim may be verified. The capacity of the plurality of free blocks may be reclaimed. A composite chunk from the plurality of free blocks may be created.


