@inproceedings{cb14572976d343b59633b4a279fc3845,
title = "Predicate RCU: An RCU for scalable concurrent updates",
abstract = "Read-copy update (RCU) is a shared memory synchronization mechanism with scalable synchronization-free reads that nevertheless execute correctly with concurrent updates. To guarantee the consistency of such reads, an RCU update transitioning the data structure between certain states must wait for the completion of all existing reads. Unfortunately, these waiting periods quickly become a bottleneck, and thus RCU remains unused in data structures that require scalable, fine-grained, update operations. To solve this problem, we present Predicate RCU (PRCU), an RCU variant in which an update waits only for the reads whose consistency it affects, which are specified by a user-supplied predicate. We explore the trade-offs in implementing PRCU, describing implementations that reduce wait times by 10-100× with varying overhead on reads on modern x86 multiprocessor machines. We demonstrate the applicability of PRCU by applying it to two RCU-based concurrent algorithms - the CITRUS binary search tree and a resizable hash table - and show experimentally that PRCU significantly improves the performance of both algorithms.",
keywords = "Concurrent data structures, RCU, Synchronization",
author = "Maya Arbel and Adam Morrison",
year = "2015",
month = jan,
day = "24",
doi = "https://doi.org/10.1145/2688500.2688518",
language = "الإنجليزيّة",
series = "Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP",
pages = "21--30",
booktitle = "20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - Proceedings",
note = "20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 ; Conference date: 07-02-2015 Through 11-02-2015",
}