Creative Commons Attribution 3.0 Unported license
This paper studies the step complexity of adaptive algorithms using primitives stronger than reads and writes. We first consider unconditional primitives, like fetch&inc, which modify the value of the register to which they are applied, regardless of its current value. Unconditional primitives admit snapshot algorithms with O(log(k)) step complexity, where k is the total or the point contention. These algorithms combine a renaming algorithm with a mechanism for propagating values so they can be quickly collected. When only conditional primitives, e.g., compare&swap or LL/SC, are used (in addition to reads and writes), we show that any collect algorithm must perform Omega(k) steps, in an execution with total contention k in O(log(log(n))). The lower bound applies for snapshot and renaming, both one-shot and long-lived. Note that there are snapshot algorithms whose step complexity is polylogarithmic in n using only reads and writes, but there are no adaptive algorithms whose step complexity is polylogarithmic in the contention, even when compare&swap and LL/SC are used.
@InProceedings{attiya_et_al:LIPIcs.OPODIS.2015.36,
author = {Attiya, Hagit and Fouren, Arie},
title = {{Poly-Logarithmic Adaptive Algorithms Require Unconditional Primitives}},
booktitle = {19th International Conference on Principles of Distributed Systems (OPODIS 2015)},
pages = {36:1--36:16},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-939897-98-9},
ISSN = {1868-8969},
year = {2016},
volume = {46},
editor = {Anceaume, Emmanuelle and Cachin, Christian and Potop-Butucaru, Maria},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.OPODIS.2015.36},
URN = {urn:nbn:de:0030-drops-66793},
doi = {10.4230/LIPIcs.OPODIS.2015.36},
annote = {Keywords: collect, atomic snapshot, renaming, fetch\&inc, compare\&swap}
}