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

05/31/2019
by   Hagit Attiya, et al.
0

We present the tracking approach for deriving recoverable implementations of several widely-used concurrent data structures. Recoverability is appealing for emerging systems featuring byte-addressable non-volatile main memory (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 per-process manner, thus reducing the cost of ensuring recoverability.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset