3 research outputs found
Snap-Stabilization in Message-Passing Systems
In this paper, we tackle the open problem of snap-stabilization in
message-passing systems. Snap-stabilization is a nice approach to design
protocols that withstand transient faults. Compared to the well-known
self-stabilizing approach, snap-stabilization guarantees that the effect of
faults is contained immediately after faults cease to occur. Our contribution
is twofold: we show that (1) snap-stabilization is impossible for a wide class
of problems if we consider networks with finite yet unbounded channel capacity;
(2) snap-stabilization becomes possible in the same setting if we assume
bounded-capacity channels. We propose three snap-stabilizing protocols working
in fully-connected networks. Our work opens exciting new research perspectives,
as it enables the snap-stabilizing paradigm to be implemented in actual
networks
Trade-off between Time, Space, and Workload: the case of the Self-stabilizing Unison
We present a self-stabilizing algorithm for the (asynchronous) unison problem
which achieves an efficient trade-off between time, workload, and space in a
weak model. Precisely, our algorithm is defined in the atomic-state model and
works in anonymous networks in which even local ports are unlabeled. It makes
no assumption on the daemon and thus stabilizes under the weakest one: the
distributed unfair daemon.
In a -node network of diameter and assuming a period ,
our algorithm only requires bits per node to achieve full
polynomiality as it stabilizes in at most rounds and moves. In particular and to the best of our knowledge, it is the first
self-stabilizing unison for arbitrary anonymous networks achieving an
asymptotically optimal stabilization time in rounds using a bounded memory at
each node.
Finally, we show that our solution allows to efficiently simulate synchronous
self-stabilizing algorithms in an asynchronous environment. This provides a new
state-of-the-art algorithm solving both the leader election and the spanning
tree construction problem in any identified connected network which, to the
best of our knowledge, beat all existing solutions of the literature.Comment: arXiv admin note: substantial text overlap with arXiv:2307.0663
Automated Analysis and Optimization of Distributed Self-Stabilizing Algorithms
Self-stabilization [2] is a versatile technique for recovery from erroneous behavior due to transient
faults or wrong initialization. A system is self-stabilizing if (1) starting from an arbitrary
initial state it can automatically reach a set of legitimate states in a finite number of steps and (2)
it remains in legitimate states in the absence of faults. Weak-stabilization [3] and probabilistic-stabilization
[4] were later introduced in the literature to deal with resource consumption of
self-stabilizing algorithms and impossibility results. Since the system perturbed by fault may
deviate from correct behavior for a finite amount of time, it is paramount to minimize this time
as much as possible, especially in the domain of robotics and networking. This type of fault
tolerance is called non-masking because the faulty behavior is not completely masked from the
user [1].
Designing correct stabilizing algorithms can be tedious. Designing such algorithms that
satisfy certain average recovery time constraints (e.g., for performance guarantees) adds further
complications to this process. Therefore, developing an automatic technique that takes as input
the specification of the desired system, and synthesizes as output a stabilizing algorithm with
minimum (or other upper bound) average recovery time is useful and challenging. In this thesis,
our main focus is on designing automated techniques to optimize the average recovery time of
stabilizing systems using model checking and synthesis techniques.
First, we prove that synthesizing weak-stabilizing distributed programs from scratch and repairing
stabilizing algorithms with average recovery time constraints are NP-complete in the
state-space of the program. To cope with this complexity, we propose a polynomial-time heuristic
that compared to existing stabilizing algorithms, provides lower average recovery time for
many of our case studies.
Second, we study the problem of fine tuning of probabilistic-stabilizing systems to improve
their performance. We take advantage of the two properties of self-stabilizing algorithms to
model them as absorbing discrete-time Markov chains. This will reduce the computation of
average recovery time to finding the weighted sum of elements in the inverse of a matrix.
Finally, we study the impact of scheduling policies on recovery time of stabilizing systems.
We, in particular, propose a method to augment self-stabilizing programs with k-central and k-bounded
schedulers to study dierent factors, such as geographical distance of processes and the
achievable level of parallelism