Concurrent Updates with RCU: Search Tree as an Example

被引:42
作者
Arbel, Maya [1 ]
Attiya, Hagit [1 ]
机构
[1] Technion, Dept Comp Sci, Haifa, Israel
来源
PROCEEDINGS OF THE 2014 ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING (PODC'14) | 2014年
基金
以色列科学基金会;
关键词
Shared memory; internal search tree; read-copy-update;
D O I
10.1145/2611462.2611471
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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.
引用
收藏
页码:196 / 205
页数:10
相关论文
共 26 条
  • [1] Afek Y, 2012, LECT NOTES COMPUT SC, V7611, P1, DOI 10.1007/978-3-642-33651-5_1
  • [2] [Anonymous], 2012, P SPAA 12
  • [3] [Anonymous], 2003, THESIS
  • [4] Attiya H, 2008, SPAA'08: PROCEEDINGS OF THE TWENTIETH ANNUAL SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, P336
  • [5] A Practical Concurrent Binary Search Tree
    Bronson, Nathan G.
    Casper, Jared
    Chafi, Hassan
    Olukotun, Kunle
    [J]. PPOPP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING, 2010, : 257 - 268
  • [6] Brown T, 2014, ACM SIGPLAN NOTICES, V49, P329, DOI [10.1145/2692916.2555267, 10.1145/2555243.2555267]
  • [7] Clements AT, 2012, ASPLOS XVII: SEVENTEENTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, P199
  • [8] Crain T., 2010, EURO PAR, P229
  • [9] User-Level Implementations of Read-Copy Update
    Desnoyers, Mathieu
    McKenney, Paul E.
    Stern, Alan S.
    Dagenais, Michel R.
    Walpole, Jonathan
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2012, 23 (02) : 375 - 382
  • [10] Drachsler D, 2014, ACM SIGPLAN NOTICES, V49, P343, DOI [10.1145/2555243.2555269, 10.1145/2692916.2555269]