Tracking in Order to Recover: Recoverable Lock-Free Data Structures

Hagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler, Eleftherios Kosmas

Research output: Working paper/PreprintPreprint

96 Downloads (Pure)


We present the \emph{tracking approach} for deriving \emph{recoverable} implementations of several widely-used concurrent data structures. Recoverability is appealing for emerging systems featuring byte-addressable \emph{non-volatile main memory} (\emph{NVRAM}), whose durability allows to efficiently resurrect a failed process after it crashes. The tracking approach ensures that after a crash occurs, every executed operation is able to recover and return a correct response, in addition to guaranteeing that the state of the data structure is not corrupted. The approach is applicable to lock-free concurrent data structures that use helping and rely on information structures to track the progress of operations. Such a tracking mechanism is already present in a wide range of well-known concurrent data structures, in particular, linked lists, trees and elimination stacks, making it relatively easy to derive their recoverable versions using the tracking approach. The tracking approach illustrates that full-fledged logging is not needed and ensures that the progress of concurrent operations is tracked in a \emph{per-process} manner, thus reducing the cost of ensuring recoverability.
Original languageEnglish
StatePublished - 2019


  • Computer Science - Distributed
  • Parallel
  • and Cluster Computing


Dive into the research topics of 'Tracking in Order to Recover: Recoverable Lock-Free Data Structures'. Together they form a unique fingerprint.

Cite this