Practically-self-stabilizing vector clocks without scheduling fairness
Journal article, 2026

Vector clock algorithms are fundamental wait-free building blocks that enable the causal ordering of events. As wait-free algorithms, they are designed to complete their operations within a finite number of steps. Stabilizing algorithms aid the system in recovering after the occurrence of transient faults, such as soft errors and arbitrary violations of the assumptions according to which the system was designed to behave. To the best of our knowledge, this paper introduces the first stabilizing vector clock algorithm for asynchronous crash-prone message-passing systems that can achieve wait-free recovery after the occurrence of transient faults. In such settings, demonstrating finite and wait-free recovery from transient faults as well as communication and crash failures, bounding the message and storage sizes, handling the removal of stale information without blocking, and addressing concurrent counter overflow events at different network nodes pose significant challenges. We propose an algorithm that ensures safety in the absence of transient faults and offers bounded time recovery during fair executions following the last transient fault. The novelty lies in guaranteeing a bound on the number of safety violations, even in the absence of execution fairness (where existing algorithms may become permanently blocked due to both transient faults and crash failures). Considering the usefulness of vector clocks in facilitating various elementary synchronization building blocks in asynchronous systems without requiring remote replica synchronization, our analytical insights hold promise for designing other systems that cannot guarantee execution fairness.

Author

Iosif Salem

Networks and Systems (Chalmers)

Elad Schiller

University of Gothenburg

Chalmers, Computer Science and Engineering (Chalmers), Computer and Network Systems

Acta Informatica

0001-5903 (ISSN) 1432-0525 (eISSN)

Vol. 63 3 32

Subject Categories (SSIF 2025)

Computer Sciences

Computer Engineering

DOI

10.1007/s00236-026-00544-z

More information

Latest update

8/31/2026