Is there really a need for segment cleaning as Rosenblum lays it out?
They clean segments to reduce fragmentation and allow for decent-sized extents to write new data into. Since your writes don't need to be long and contiguous, do you really need to empty the live data out of segments?
You DO need to identify which snapshots are stale, and consequently mark certain blocks as free. But I see no need for compaction.
Comments
Is there really a need for segment cleaning as Rosenblum lays it out?
They clean segments to reduce fragmentation and allow for decent-sized extents to write new data into. Since your writes don't need to be long and contiguous, do you really need to empty the live data out of segments?
You DO need to identify which snapshots are stale, and consequently mark certain blocks as free. But I see no need for compaction.