Published January 4, 2022 | Version v.1.0.1
Software Open

Tracking: PPoPP 22 - Detectable Recovery of Lock-Free Data Structures

  • 1. Technion
  • 2. Ben-Gurion University
  • 3. Université de Paris, FORTH ICS, University of Crete, Greece
  • 4. University of Crete, CSD

Description

In the PPoPP 2022 paper [1] entitled "Detectable Recovery of Lock-Free Data Structures", we present a generic approach called Tracking for deriving detectably recoverable implementations of many widely-used concurrent data structures. Such implementations are appealing for emerging systems featuring byte-addressable nonvolatile main memory (NVMM), whose persistence allows to efficiently resurrect failed processes after crashes. Detectable recovery ensures that after a crash, every executed operation is able to recover and return a correct response, and that the state of the data structure is not corrupted.

We have applied Tracking to derive detectably recoverable implementations of a linked list, a binary search tree, and an exchanger. Our experimental analysis introduces a new way of analyzing the cost of persistence instructions, not by simply counting them but by separating them into categories based on the impact they have on the performance. The analysis reveals that understanding the actual persistence cost of an algorithm in machines with real NVMM, is more complicated than previously thought, and requires a thorough evaluation, since the impact of different persistence instructions on performance may greatly vary. We consider this analysis to be one of the major contributions of the paper.

Here we provide the code, together with the necessary documentation, for reproducing the experimental results presented in the paper, regarding our algorithms. We also provide the code for a recoverable implementation of a linked list based on the capsules transformation (Naama Ben-David, Guy E Blelloch, Michal Friedman, and Yuanhao Wei, SPAA '19).

An up-to-date version of this code, together with other recoverable implementations, can be found in our working GitHub repository [2]. 

Funding: Hagit Attiya, Ohad Ben-Baruch, and Danny Hendler: Supported by ISF grant 380/18. Panagiota Fatourou: Supported by the EU Horizon 2020, Marie Sklodowska-Curie project with GA No 101031688. Eleftherios Kosmas: Co-financed by Greece and the European Union (European Social Fund- ESF) through the Operational Programme «Human Resources Development, Education and Lifelong Learning» in the context of the project “Reinforcement of Postdoctoral Researchers - 2nd Cycle” (MIS-5033021), implemented by the State Scholarships Foundation (IKY).

[1] - Hagit Attiya, Ohad Ben-Baruch, Panagiota Fatourou, Danny Hendler, and Eleftherios Kosmas. "Detectable Recovery of Lock-Free Data Structures". ACM SIGPLAN Notices. Principles and Practice of Parallel Programming (PPoPP) 2022.

[2] - https://github.com/ConcurrentDistributedLab/Tracking

Notes

An up-to-date version of the code provided here, together with additional recoverable implementations, can be found in our working GitHub repository: https://github.com/ConcurrentDistributedLab/Tracking. This code is publicly available under GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999.

Files

ConcurrentDistributedLab/Tracking-v.1.0.1.zip

Files (936.4 kB)

Name Size Download all
md5:27fc4b4af77d0ed09b0e6ca173873446
936.4 kB Preview Download

Additional details

Funding

PLATON – Platform-aware LArge-scale Time-Series prOcessiNg 101031688
European Commission