Description
The SegmentMK architecture allows segment-level garbage collection by looking at the cross-segment reference graph. A simple garbage collector would list all segments, remove those that are reachable through the graph starting from one of the journals, and finally remove all remaining segments.
Some "don't collect" flag or minimum lifetime information should be added to segments that are currently being written so they don't get removed before they get committed and thus referenced by a journal.