Self Stabilization in Distributed Systems
The concept of ‘Self Stabilization’ was first proposed by Dijkstra in 1974. It is a general technique for non-masking distributed systems. It is a technique of continuous healing which guarantees eventual safety after series of failures. You must have come across a damped pendulum while performing physics experiments in your school. So in starting the pendulum is stable, when some external force is applied to that pendulum, it goes into some arbitrary position. You know that after a finite period of time, it will again come back into an initial stable position or equilibrium. So here we will see how this analogy works in distributed systems.
Analogy in distributed systems :
Consider the following points as follows.
- You have some processors P0, P1, ……………………………… Pn + communication channels.
- Each processor Pi has a state xi, for example, the state could be the values of the variables in the memory of the processor or the values of register in the processor Pi.
- Configuration is simply the set sequence of vectors of states of every processor in the system.
- The main complication in designing a Self Stabilizing distributed system is that nodes do not have a global memory that they can access instantaneously. Each node must make decisions based on local knowledge available to it and the actions of all nodes must achieve a global objective.
Usually, when you design your system, you have a legitimate configuration that is generally stable. If you can start a legitimate configuration, and you can reach another configuration in a bounded number of steps then this new configuration is also legitimate as long as the processes are not further corrupted. However, your distributed system is a physical system, so it is vulnerable to many kinds of faults. Particularly there can be a transient fault.
Transient failure :
It is an unpredictable failure and can occur at any time. And They occur frequently. Due to week power supply or batteries, It can be caused by an overloaded. When software components fail, they also capture state corruption. So usually system starts with a legitimate configuration then for a finite period of time you face perturbation. At the end of this perturbation, your system reaches an arbitrary configuration.
In some set of configurations that is likely to be longer than the set of legitimate configurations. The ability to recover automatically from any initial state implies that no initialization was ever required. Your system is said to be in self-stabilizing mode when there are no more perturbation and if after a finite period of time you reach a legitimate configuration and stay there, then this property of starting from an arbitrary configuration and converging to a legitimate configuration and staying there is called Self Stabilization. Self-stabilizing systems exhibit two properties: Convergence and Closure.
Advantage of Self Stabilization in Distributed Systems :
Here, we will discuss the advantages of Self Stabilization in Distributed Systems as follows.
- It enables a distributed system to recover from transient faults automatically without any manual intervention as long as no further faults occur.
- Self-stabilization algorithm need not be initialized as it eventually starts to behave correctly regardless of its initial state of the system.
- This property is quite robust for distributed systems which makes it quite an appealing model for distributed computations.
Disadvantages of Self Stabilization in Distributed Systems :
Here, we will discuss the disadvantages of Self Stabilization in Distributed Systems as follows.
- It is quite difficult to achieve especially when the system is started in an incorrect state or is corrupted by an intruder.
- It is very complex ie difficult to design.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.