The MVCC STM keeps a history of old Ref Values. This needs to be managed so the list doesn't get too long. You would think there is a way to have the Garbage Collector do the work of getting rid of old values that are no longer required. After some designing, then thinking, then more designing, I found a way that makes this work quite nicely.
The Garbage Collected History List
I couldn't find a reference to anything like this - I guess I don't know the right keywords to Google on. Anyway, a fundamentally simple concept that allows the tail of a list to be GC'd at the point where there are no references to the list below that point.
Perfect for a history where you only need to keep values that are still possibly likely to be used.




