Table of Contents
Fetching ...

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.

Recoverable Lock-Free Locks

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.

Paper Structure

This paper contains 11 sections, 3 theorems, 1 figure, 6 algorithms.

Key Result

Lemma 1

RFlock ensures idempotence.

Figures (1)

  • Figure 1: Typical code with TryLock.

Theorems & Definitions (3)

  • Lemma 1
  • Lemma 2
  • Lemma 3