35
8

Space and Time Bounded Multiversion Garbage Collection

Abstract

We present a general technique for garbage collecting old versions for multi-version concurrency control that simultaneously achieves good time and space complexity. Our technique takes only O(1)O(1) time on average for each new version and maintains only a constant factor more than then number of needed versions. Our technique is designed for multi-version 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 list. These two components naturally fit together to solve the multiversion garbage collection problem--the range-tracker identifies which versions to remove and the list algorithm splices them out. We apply our garbage collection technique to generate end-to-end time and space bounds for the multiversioning system of Wei et al. (PPoPP 2021).

View on arXiv
Comments on this paper