Concurrent Reference Counting and Resource Management in Wait-free Constant Time
Guy E. Blelloch, Yuanhao Wei

TL;DR
This paper introduces a novel acquire-retire interface for concurrent resource management that ensures safe, lock-free access with constant time overhead, improving efficiency in memory reclamation, reference counting, and object management.
Contribution
It presents a new acquire-retire interface enabling lock-free, constant-time resource protection in concurrent programs, with applications to memory reclamation, reference counting, and object management.
Findings
Expected constant time overhead for all operations.
Significant improvements over previous methods in memory reclamation and reference counting.
Original application to object management with moves, copies, and destructs.
Abstract
A common problem when implementing concurrent programs is efficiently protecting against unsafe races between processes reading and then using a resource (e.g., memory blocks, file descriptors, or network connections) and other processes that are concurrently overwriting and then destructing the same resource. Such read-destruct races can be protected with locks, or with lock-free solutions such as hazard-pointers or read-copy-update (RCU). In this paper we describe a method for protecting read-destruct races with expected constant time overhead, space and delayed destructs, and with just single word atomic memory operations (reads, writes, and CAS). It is based on an interface with four primitives, an acquire-release pair to protect accesses, and a retire-eject pair to delay the destruct until it is safe. We refer to this as the acquire-retire interface. Using 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
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 · Security and Verification in Computing
