Lower Bounds on the Amortized Time Complexity of Shared Objects

Hagit Attiya, Arie Fouren, Jeremy Ko

Research output: Contribution to journalArticlepeer-review

Abstract

The amortized step complexity of an implementation measures its performance as a whole, rather than the performance of individual operations. Specifically, the amortized step complexity of an implementation is the average number of steps performed by invoked operations, in the worst case, taken over all possible executions. The point contention of an execution, denoted by c˙, measures the maximal number of precesses simultaneously active in the execution. Ruppert (2016) showed that the amortized step complexity of known lock-free implementations for many shared data structures includes an additive factor linear in the point contention c˙. This paper shows that there is no lock-free implementation with o(min{c˙,loglogn}) amortized RMR complexity of queues, stacks or heaps from reads, writes, comparison primitives (such as compare &swap) and LL/SC, where n is the total number of the processes in the system. In addition, the paper shows a Ω(min{c˙,loglogn}) lower bound on the amortized step complexity for shared linked lists, skip lists, search trees and other pointer-based data structures. These lower bounds mean that the additive factor linear in c˙ is inherent for these implementations, provided that the point contention is small compared to the number of processes in the system (i.e. c˙∈O(loglogn) or c˙∈O(loglogn)).

Original languageEnglish
JournalTheory of Computing Systems
DOIs
StateAccepted/In press - 2024

Keywords

  • Lists
  • Monotone objects
  • Remote memory references
  • Stacks and queues
  • Step complexity
  • Trees

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computational Theory and Mathematics

Cite this