Recoverable Lock-Free Locks
Hagit Attiya, Panagiota Fatourou, Eleftherios Kosmas, Yuanhao Wei
TL;DR
RFlock delivers the first direct transformation from lock-based code to recoverable, lock-free implementations, built atop an optimized lock-free lock (Flock). By introducing per-lock read and update logs, descriptor objects, and deferred persistence, RFlock achieves durable linearizability while preserving the original correctness of the base design. It supports nested locks through a log-driven, idempotent execution model and provides a practical interface compatible with Flock. The work situates itself among prior lock-free and recoverable transformations, offering a unified approach that combines lock-freedom with crash resilience, albeit with initial experimental results to be expanded.
Abstract
This paper presents the first transformation that introduces both lock-freedom and recoverability. Our transformation starts with a lock-based implementation, and provides a recoverable, lock-free substitution to lock acquire and lock release operations. The transformation supports nested locks for generality and ensures recoverability without jeopardising the correctness of the lock-based implementation it is applied on.
