RRR-SMR: Reduce, Reuse, Recycle: Better Methods for Practical Lock-Free Data Structures
This program is tentative and subject to change.
Traditionally, most concurrent algorithms rely on safe memory reclamation (SMR) schemes for manual memory management. SMR schemes such as epoch-based reclamation (EBR) and hazard pointers (HP) are typically viewed as the only solution for memory recycling.
When using SMR, a new object needs to be allocated whenever something new is added to a data structure. However, in more complex scenarios, the same object may need to be moved between different data structures (e.g., moving a node from one list to another, and then back to the original list) in a copy-free manner, i.e., without deallocating and allocating the node again. It is typically impossible for two reasons: (1) the ABA problem would still arise even when using SMR since the same pointer can reappear (without going through the full SMR cycle) if the same node eventually ends up back in the original data structure; (2) while in simple queues and stacks, nodes can immediately be recycled, it is unclear how to adapt data structures which use non-trivial traversal and two-phase deletion strategies, e.g., linked lists, skip lists, hash tables, trees, etc., where it is seemingly impossible to always immediately move (logically) deleted objects since they might still be accessed by other threads.
We propose a general method of creating RRR (Reduce, Reuse, Recycle) data structures to allow safe memory recycling when using SMR which addresses the above-mentioned problems. Our method is applicable to linked lists, skip lists, hash tables, Natarajan-Mittal tree, and other data structures. We also discuss and propose a specialized approach – a more efficient version of Michael-and-Scott's (recycling) queue. Our evaluation on x86-64 shows promising results when using our methods for different data structures and SMR schemes.
This program is tentative and subject to change.
Fri 20 JunDisplayed time zone: Seoul change
10:30 - 12:10 | |||
10:30 20mTalk | Verifying General-Purpose RCU for Reclamation in Relaxed Memory Separation Logic PLDI Research Papers Jaehwang Jung Rebellions Inc, Sunho Park KAIST, Janggun Lee KAIST, Jeho Yeon KAIST, Jeehoon Kang KAIST DOI | ||
10:50 20mTalk | Leveraging Immutability to Validate Hazard Pointers for Optimistic Traversals PLDI Research Papers DOI | ||
11:10 20mTalk | Iso: Request-Private Garbage Collection PLDI Research Papers Tianle Qiu Australian National University, Stephen M. Blackburn Google; Australian National University DOI | ||
11:30 20mTalk | CRGC: Fault-Recovering Actor Garbage Collection in Pekko PLDI Research Papers Dan Plyukhin University of Southern Denmark, Gul Agha University of Illinois at Urbana-Champaign, Fabrizio Montesi University of Southern Denmark DOI | ||
11:50 20mTalk | RRR-SMR: Reduce, Reuse, Recycle: Better Methods for Practical Lock-Free Data Structures PLDI Research Papers DOI |