There is a newer version of the record available.

Published March 10, 2024 | Version v2
Software Restricted

Artifact for "Concurrent Immediate Reference Counting"

  • 1. ROR icon Korea Advanced Institute of Science and Technology
  • 2. Azure Research, Microsoft

Description

This is the artifact for PLDI 2024 paper: "Concurrent Immediate Reference Counting".
 

The memory management of non-blocking data structures is challenging as they perform optimistic access to memory. This makes it hard to know when memory can be safely reclaimed. Safe memory reclamation (SMR) algorithms have been developed to address this challenge. However, these algorithms are complex and difficult to use correctly. Concurrent reference counting is a simple alternative to SMR, but it is difficult to implement correctly in the presence of optimistic memory access. Recently, there has been a push to combine concurrent reference counting with SMR. These approaches provide a clean interface to the programmer and the potential for scaling. However, there are still gaps in performance between the underlying SMR and the combined approaches.

In this paper, we present Concurrent Immediate Reference Counting (CIRC), a new combination of an SMR scheme with reference counting. The core aim of CIRC is to provide a new algorithm that applies operations immediately where possible. There are two novelties to the design of CIRC: (1) a new approach to safely allowing only the destruction to be delayed, and (2) a new approach to allowing the immediate recursive destruction of objects. The combination of ideas in CIRC allows memory to be reclaimed considerably more quickly than the state-of-the-art CDRC. In our experiments, we show that CIRC's memory usage is only slightly higher than the underlying SMR, and more importantly is not growing with time. We also show that CIRC closes the performance gap in terms of throughput with the underlying SMR, making CIRC a promising and safe approach for reclaiming memory in highly concurrent data structures.

 

Refer to the README in the attached file for more information on this artifact.

Files

Restricted

The record is publicly accessible, but files are restricted to users with access.

Additional details

Software

Programming language
Rust, Python