Cleaning
The major problem for a LFS is cleaning, i.e., producing contiguous free space on disk
A cleaner process “cleans” old segments, i.e., takes several non-full segments and compacts them, creating one full segment, plus free space
The cleaner chooses segments on disk based on:
- utilization: how much is to be gained by cleaning them
- age: how likely is the segment to change soon anyway
Cleaner cleans “cold” segments at 75% utilization and “hot” segments at 15% utilization (because it’s worth waiting on “hot” segments for blocks to be rewritten by current activity)