Predicate RCU: An RCU for scalable concurrent updates

Maya Arbel, Adam Morrison

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

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.

Original languageEnglish
Title of host publication20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - Proceedings
Pages21-30
Number of pages10
ISBN (Electronic)9781450332057
DOIs
StatePublished - 24 Jan 2015
Event20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - San Francisco, United States
Duration: 7 Feb 201511 Feb 2015

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
Volume2015-January

Conference

Conference20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015
Country/TerritoryUnited States
CitySan Francisco
Period7/02/1511/02/15

Keywords

  • Concurrent data structures
  • RCU
  • Synchronization

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Predicate RCU: An RCU for scalable concurrent updates'. Together they form a unique fingerprint.

Cite this