Distributed Storage Garbage Collection Using Dynamic Bin Subsets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing garbage collection processes in distributed storage architectures are inefficient and resource-intensive, particularly due to the complexity of identifying and freeing unused blocks across multiple worker nodes, which can lead to data loss and increased latency for client I/O operations.
Innovation Solution
The implementation of a dynamic garbage collection process that selectively processes subsets of bins instead of entire bins, using heuristics to adjust the size of the subset based on factors such as storage fullness, time elapsed since initialization, and garbage collection backlog, while also disjoining the generation of probabilistic structures from the garbage collection process to ensure fresher and more accurate data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If garbage collection processes the entire bin to identify and free unused blocks, then storage efficiency is improved, but processing time and resource consumption increase significantly
Solution Approach 1:
The bin is divided into multiple subsets, and garbage collection is performed on each subset separately rather than processing the entire bin at once. This segmentation allows the garbage collection process to make progress on storage efficiency while limiting the time and resources required for each individual processing cycle.
Solution Approach 2:
Garbage collection is performed periodically on different subsets of the bin in a cyclic manner. The process moves through subsets sequentially, performing garbage collection on each subset for a limited time period, then moving to the next subset. This periodic action ensures continuous storage efficiency improvement without requiring long continuous processing that would cause latency spikes.
2Productivity
If garbage collection is performed frequently to maintain storage efficiency, then unused blocks are freed faster, but client I/O latency increases due to resource contention
Solution Approach 1:
The garbage collection workload is segmented across multiple subsets and distributed over time. Instead of performing intensive garbage collection on the entire bin at once (which would cause latency spikes), the process works on smaller subsets sequentially, reducing resource contention and maintaining lower client I/O latency while still achieving good garbage collection rates over time.
Solution Approach 2:
The garbage collection process dynamically adjusts its behavior based on system conditions. When client I/O load is high, garbage collection intensity is reduced to minimize latency impact. When load is lower, garbage collection progresses faster through the subsets. This dynamic adaptation allows the system to maintain storage efficiency while responding to changing workload conditions.
3Measurement precision
If probabilistic structures are generated continuously to track in-use blocks, then accuracy of garbage collection is improved, but computational overhead and resource consumption increase
Solution Approach 1:
Probabilistic structures are generated and updated periodically rather than continuously. The system generates fresh probabilistic structures at scheduled intervals and uses them for garbage collection processing. This periodic generation maintains adequate accuracy for identifying in-use blocks while significantly reducing the computational overhead compared to continuous generation and updating.
Solution Approach 2:
The system uses probabilistic structures with acceptable (not perfect) accuracy to achieve sufficient garbage collection effectiveness. Rather than investing excessive computational resources to minimize the false positive rate to near-zero levels, the system accepts a reasonable false positive rate in exchange for much lower computational overhead, achieving a practical balance between accuracy and resource consumption.
Data Source
AI summary
Techniques are provided for implementing garbage collection and bin synchronization for a distributed storage architecture of worker nodes managing distributed storage composed of bins of blocks. As the distributed storage architecture scales out to accommodate more storage and worker nodes, garbage collection used to free unused blocks becomes unmanageable and slow. Accordingly garbage collection is improved by utilizing heuristics to dynamically speed up or down garbage collection and set sizes for subsets of a bin to process instead of the entire bin. This ensures that garbage collection does not use stale information about what blocks are in-use, and ensures garbage collection does not unduly impact client I/O processing or conversely falls behind on garbage collection. Garbage collection can be incorporated into a bin sync process to improve the efficiency of the bin sync process so that unused blocks are not needlessly copied by the bin sync process.


