Scalable Segment Cleaning for Log-Structured File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Log-structured file systems (LFS) face challenges in preserving segment cleaning efficiencies at scale, leading to inefficiencies in resource utilization and increased costs due to write amplification and difficulty in load balancing.
Innovation Solution
Implementing a scalable segment cleaning mechanism that determines counts of segment cleaners and virtual nodes, assigns each virtual node to a segment cleaner, and reassesses assignments based on changes in cleaner and node counts, using techniques like consistent hashing for load balancing and a segment usage table to track usage and identify cleaning candidates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If segment cleaning is performed in traditional LFS, then storage space can be reclaimed, but write amplification increases and resource utilization deteriorates at large scale
Solution Approach 1:
The system segments the LFS into multiple log segments and introduces virtual nodes as intermediate layers between physical segments and segment cleaners. Each virtual node manages a subset of segments, enabling finer-grained control and reducing the overhead on individual cleaners, thereby mitigating write amplification while maintaining effective storage reclamation.
Solution Approach 2:
Virtual nodes are introduced as intermediary components between physical log segments and segment cleaners. These virtual nodes aggregate segment cleaning requests and coordinate with multiple cleaners, distributing the workload efficiently and reducing the direct burden on individual cleaners, thus lowering write amplification while preserving storage reclamation capabilities.
2Quantity of substance
If LFS is implemented on large scale, then storage capacity increases, but segment cleaning efficiency deteriorates
Solution Approach 1:
The system divides the large-scale LFS into multiple manageable units by introducing virtual nodes that each oversee specific subsets of log segments. This segmentation allows segment cleaners to work on smaller, more manageable portions of data, maintaining cleaning efficiency even as overall storage capacity scales to petabyte levels.
Solution Approach 2:
The patent adds a virtualization dimension to the traditional LFS architecture. By introducing virtual nodes as an intermediate layer between physical segments and cleaners, the system creates a new organizational dimension that enables efficient management and cleaning of large-scale storage without linearly increasing cleaner overhead.
3Productivity
If more segment cleaners are added to handle increased workload, then cleaning capacity increases, but system complexity and load balancing difficulty increase
Solution Approach 1:
Virtual nodes serve as mediators between multiple segment cleaners and the underlying log segments. They abstract the complexity of coordinating numerous cleaners, providing a simplified interface for workload distribution and automatically managing load balancing across cleaners, thus increasing cleaning capacity without proportionally increasing system complexity.
Solution Approach 2:
Virtual nodes perform multiple functions including segment assignment, cleaning coordination, and load balancing across multiple segment cleaners. This multi-functionality consolidates several management responsibilities into a single component, reducing overall system complexity while enabling the deployment of numerous cleaners to handle increased workload.
Data Source
AI summary
Scalable segment cleaning for log-structured file systems (LFSs) includes determining counts of segment cleaners and virtual nodes, with each virtual node being associated with a plurality of objects. Each virtual node is assigned to a selected segment cleaner. Based at least on the assignments, performing, for each virtual node, segment cleaning of the objects by the assigned segment cleaner. A portion, less than all, of the virtual nodes are reassigned to a newly selected segment cleaner based on a change of the count of the segment cleaners and/or a change of the count of the virtual nodes. Based at least on the reassignments, segment cleaning of the objects is performed, for each reassigned virtual node, by the reassigned segment cleaner. In some examples, the objects comprise virtual machine disks (VMDKs) and the segment cleaning uses a segment usage table (SUT) to track segment usage and identify segment cleaning candidates.


