Garbage Collection in Concurrent Sets
Jonathan Marbaniang, Shekhar Bhandakkar, Sathya Peri

TL;DR
This paper introduces GCList, a new concurrent set data structure that integrates an in-built garbage collection scheme to efficiently manage deleted nodes, supporting both lock-based and lock-free implementations.
Contribution
The paper presents a novel representation of concurrent sets with integrated garbage collection, addressing challenges in node reuse and memory management in lock-free and lock-based settings.
Findings
GCList effectively reuses deleted nodes, reducing memory overhead.
The proposed scheme operates in parallel with set operations, maintaining invariants.
Both lock-based and lock-free versions demonstrate improved memory management.
Abstract
Garbage Collection in concurrent data structures, especially lock-free ones, pose multiple design and consistency challenges. In this instance, we consider the case of concurrent sets. A set is a collection of elements, where the elements are ordered and distinct. These two invariants are always maintained at every point in time. Currently, multiple implementations of concurrent sets already exist. LazyList, Hand-over-hand List and Harris List are some of the well-known implementations. However none of these implementations employ, or are concerned with garbage collection of deleted nodes. Instead each implementation ignores deleted nodes or depends on the garbage collector of the language to handle them. Additionally, Garbage collection in concurrent lists, that use optimistic traversals or that are lock-free, is not trivial. For example, in LazyList and Harris List, they allow a…
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
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Logic, programming, and type systems
