Creative Commons Attribution 3.0 Unported license
A shared-memory counter is a well-studied and widely-used concurrent object. It supports two operations: An Inc operation that increases its value by 1 and a Read operation that returns its current value. Jayanti, Tan and Toueg [Jayanti et al., 2000] proved a linear lower bound on the worst-case step complexity of obstruction-free implementations, from read and write operations, of a large class of shared objects that includes counters. The lower bound leaves open the question of finding counter implementations with sub-linear amortized step complexity. In this paper, we address this gap. We present the first wait-free n-process counter, implemented using only read and write operations, whose amortized operation step complexity is O(log^2 n) in all executions. This is the first non-blocking read/write counter algorithm that provides sub-linear amortized step complexity in executions of arbitrary length. Since a logarithmic lower bound on the amortized step complexity of obstruction-free counter implementations exists, our upper bound is optimal up to a logarithmic factor.
@InProceedings{baig_et_al:LIPIcs.DISC.2019.3,
author = {Baig, Mirza Ahad and Hendler, Danny and Milani, Alessia and Travers, Corentin},
title = {{Long-Lived Counters with Polylogarithmic Amortized Step Complexity}},
booktitle = {33rd International Symposium on Distributed Computing (DISC 2019)},
pages = {3:1--3:16},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-126-9},
ISSN = {1868-8969},
year = {2019},
volume = {146},
editor = {Suomela, Jukka},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.DISC.2019.3},
URN = {urn:nbn:de:0030-drops-113108},
doi = {10.4230/LIPIcs.DISC.2019.3},
annote = {Keywords: Shared Memory, Wait-freedom, Counter, Amortized Complexity, Concurrent Objects}
}