Concurrent updates with RCU: Search tree as an example

Maya Arbel, Hagit Attiya

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

Abstract

Read copy update (RCU) is a novel synchronization mechanism, in which the burden of synchronization falls completely on the updaters, by having them wait for all pre-existing readers to finish their read-side critical section. This paper presents Citrus, a concurrent binary search tree (BST) with a wait-free contains operation, using RCU synchronization and fine-grained locking for synchronization among updaters. This is the first RCU-based data structure that allows concurrent updaters. While there are methodologies for using RCU to coordinate between readers and updaters, they do not address the issue of coordination among updaters, and indeed, all existing RCU-based data structures rely on coarse-grained synchronization between updaters. Experimental evaluation shows that CITRUS beats previous RCU-based search trees, even under mild update contention, and compares well with the best-known concurrent dictionaries.

Original languageEnglish
Title of host publicationPODC 2014 - Proceedings of the 2014 ACM Symposium on Principles of Distributed Computing
Pages196-205
Number of pages10
DOIs
StatePublished - 2014
Event2014 ACM Symposium on Principles of Distributed Computing, PODC 2014 - Paris, France
Duration: 15 Jul 201418 Jul 2014

Publication series

NameProceedings of the Annual ACM Symposium on Principles of Distributed Computing

Conference

Conference2014 ACM Symposium on Principles of Distributed Computing, PODC 2014
Country/TerritoryFrance
CityParis
Period15/07/1418/07/14

Keywords

  • Internal search tree
  • Read-copy-update
  • Shared memory

All Science Journal Classification (ASJC) codes

  • Software
  • Hardware and Architecture
  • Computer Networks and Communications

Fingerprint

Dive into the research topics of 'Concurrent updates with RCU: Search tree as an example'. Together they form a unique fingerprint.

Cite this