TL;DR
This paper introduces a novel, efficient garbage collection technique for multiversion systems that maintains good time and space complexity, using new data structures for version management.
Contribution
It presents a new range-tracking data structure and a lock-free doubly-linked list algorithm for effective multiversion garbage collection.
Findings
Achieves $O(1)$ average time to reclaim each version.
Maintains only a constant factor more versions than needed.
Provides end-to-end bounds for multiversion systems.
Abstract
We present a general technique for garbage collecting old versions for multiversion concurrency control that simultaneously achieves good time and space complexity. Our technique takes only time on average to reclaim each version and maintains only a constant factor more versions than needed (plus an additive term). It is designed for multiversion schemes using version lists, which are the most common. Our approach uses two components that are of independent interest. First, we define a novel range-tracking data structure which stores a set of old versions and efficiently finds those that are no longer needed. We provide a wait-free implementation in which all operations take amortized constant time. Second, we represent version lists using a new lock-free doubly-linked list algorithm that supports efficient (amortized constant time) removals given a pointer to any node in the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
Space and Time Bounded Multiversion Garbage Collection· youtube
