SPLASH 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
Thu 21 Oct 2021 13:50 - 14:05 at Zurich G - PLDI 2021 Papers 2 Chair(s): Michael D. Bond

We present a safe automatic memory reclamation approach for non garbage-collected languages, and show that it is both theoretically and practically efficient. The approach combines ideas from referencing counting with ideas related to hazard pointers. It overcomes the limitations of previous approaches by significantly reducing modifications to, and hence contention on, the reference counts. The approach is much safer and easier to use than manual approaches such as direct usage of hazard pointers, epoch based reclamation, RCU, or interval-based reclamation. One of the key ideas is a generalization of hazard pointers that allows the same handle to be retired multiple times, which we call acquire-retire. This technique is then used to protect the reference counter of an object, which allows our method to defer decrements on the counter until no other process could be incrementing it. Another key idea is to defer or elide increments of reference counters for short-lived references by temporarily protecting the counter instead of eagerly incrementing it.

We have implemented the approach as a C++ library, which is as simple to use as conventional C++ reference-counted pointers. We run experiments on the library, comparing it to several other methods including state-of-the-art atomic reference-counted pointers, and four manual techniques: hazard-pointers, epochs, hazard-eras and interval-based reclamation. Our results indicate that our technique is faster than existing reference-counted pointer implementations, and competitive with manual memory reclamation techniques. On a variety of data structures and workloads, it achieves throughput rates within a factor of $2$ of the fastest manual approaches, while using a small fraction of the memory. Perhaps most importantly, it is significantly safer since objects are reclaimed automatically.

Thu 21 Oct

Displayed time zone: Central Time (US & Canada) change

13:50 - 15:10
PLDI 2021 Papers 2SIGPLAN Papers at Zurich G
Chair(s): Michael D. Bond Ohio State University, USA
13:50
15m
Talk
Concurrent Deferred Reference Counting for Non-garbage-collected Languages
SIGPLAN Papers
Daniel Anderson Carnegie Mellon University, Guy E. Blelloch Carnegie Mellon University, USA, Yuanhao Wei Carnegie Mellon University, USA
14:05
15m
Talk
Snapshot-Free, Transparent, and Robust Memory Reclamation for Lock-Free Data Structures
SIGPLAN Papers
Ruslan Nikolaev Virginia Tech, Binoy Ravindran Virginia Tech
14:20
15m
Talk
SyRust: Automatic Testing of Rust Libraries with Semantic-Aware Program Synthesis
SIGPLAN Papers
Yoshiki Takashima Carnegie Mellon University, Ruben Martins Carnegie Mellon University, Limin Jia Carnegie Mellon University, Corina S. Păsăreanu Carnegie Mellon University
14:35
15m
Talk
Vectorized Secure Evaluation of Decision Forests
SIGPLAN Papers
Raghav Malik Purdue University, Vidush Singhal Purdue University, Benjamin Gottfried Purdue University, Milind Kulkarni Purdue University
14:50
20m
Live Q&A
Discussion, Questions and Answers
SIGPLAN Papers