Snapshot-Based Synchronization: A Fast Replacement for Hand-over-Hand Locking
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Springer International Publishing
Abstract
Concurrent accesses to shared data structures must be synchronized to avoid data races. Coarse-grained synchronization, which locks the entire data structure, is easy to implement but does not scale. Fine-grained synchronization can scale well, but can be hard to reason about. Hand-over-hand locking, in which operations are pipelined as they traverse the data structure, combines fine-grained synchronization with ease of use. However, the traditional implementation suffers from inherent overheads. This paper introduces snapshot-based synchronization (SBS), a novel hand-over-hand locking mechanism. SBS decouples the synchronization state from the data, significantly improving cache utilization. Further, it relies on guarantees provided by pipelining to minimize synchronization that requires cross-thread communication. Snapshot-based synchronization thus scales much better than traditional hand-over-hand locking, while maintaining the same ease of use.
Description
Accepted author manuscript of the Euro-Par 2018 paper, 14 pages; the published edition is pp. 465–479. Copyright 2018 Springer International Publishing AG, part of Springer Nature. This is not the Version of Record and excludes publisher production changes. Final authenticated version: https://doi.org/10.1007/978-3-319-96983-1_33. Use is subject to Springer Nature’s accepted-manuscript terms: https://www.springernature.com/gp/open-research/policies/accepted-manuscript-terms. PDF unchanged; no new Creative Commons licence assigned.