• DocumentCode
    1796813
  • Title

    The LevelArray: A Fast, Practical Long-Lived Renaming Algorithm

  • Author

    Alistarh, Dan ; Kopinsky, Justin ; Matveev, Alexey ; Shavit, Nir

  • fYear
    2014
  • fDate
    June 30 2014-July 3 2014
  • Firstpage
    348
  • Lastpage
    357
  • Abstract
    The long-lived renaming problem appears in shared-memory systems where a set of threads need to register and deregister frequently from the computation, while concurrent operations scan the set of currently registered threads. Instances of this problem show up in concurrent implementations of transactional memory, flat combining, thread barriers, and memory reclamation schemes for lock-free data structures. In this paper, we analyze a randomized solution for long-lived renaming. The algorithmic technique we consider, called the Level Array, has previously been used for hashing and one-shot (single-use) renaming. Our main contribution is to prove that, in long-lived executions, where processes may register and deregister polynomially many times, the technique guarantees constant steps on average and O (log log n) steps with high probability for registering, unit cost for deregistering, and O (n) steps for collect queries, where n is an upper bound on the number of processes that may be active at any point in time. We also show that the algorithm has the surprising property that it is self-healing: under reasonable assumptions on the schedule, operations running while the data structure is in a degraded state implicitly help the data structure re-balance itself. This subtle mechanism obviates the need for expensive periodic rebuilding procedures. Our benchmarks validate this approach, showing that, for typical use parameters, the average number of steps a process takes to register is less than two and the worst-case number of steps is bounded by six, even in executions with billions of operations. We contrast this with other randomized implementations, whose worst-case behavior we show to be unreliable, and with deterministic implementations, whose cost is linear in n.
  • Keywords
    computational complexity; data structures; shared memory systems; transaction processing; LevelArray; flat combining; lock-free data structures; long-lived renaming problem; memory reclamation scheme; periodic rebuilding procedures; shared-memory system; thread barriers; transactional memory; Arrays; Complexity theory; Indexes; Instruction sets; Registers; Schedules; long-lived data structures; randomized algorithms; renaming; shared memory;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Distributed Computing Systems (ICDCS), 2014 IEEE 34th International Conference on
  • Conference_Location
    Madrid
  • ISSN
    1063-6927
  • Print_ISBN
    978-1-4799-5168-0
  • Type

    conf

  • DOI
    10.1109/ICDCS.2014.43
  • Filename
    6888911