Synchronous Distributed Systems
• In a synchronous distributed system, there is a globally shared clock or a well-defined time
reference that all nodes follow.
• Nodes in a synchronous system operate in lockstep, meaning they progress through their
computations and communications in a synchronised manner according to the global clock.
Characteristics
Global Clock: There is a centralized clock or a shared understanding of time that all nodes adhere to.
Fixed Time Intervals: Processes or nodes perform actions and communicate with each other at fixed
and well-defined time intervals.
Predictable Timing: The execution and communication timing is predictable and known in advance.
Simplified Coordination: The shared clock simplifies the coordination of activities among nodes, as
there is a clear order of events.
Challenges: Synchronous systems may face challenges when nodes experience delays or failures, as
the global clock may need to be adjusted to accommodate such variations.
ASynchronous Distributed Systems
• In an asynchronous distributed system, there is no global clock or shared notion of time. Nodes
operate independently of each other, and the timing of their actions and communications is not
synchronized.
• Asynchronous systems typically rely on message passing and events to communicate and
coordinate.
Characteristics
No Global Clock: There is no central clock that all nodes follow, and each node operates based on
its own local clock.
Variable Timing: Actions and communications may occur at unpredictable times, and there is no
fixed timing requirement.
Event-Driven: Nodes communicate through message passing and events rather than adhering to a
strict time schedule.
Flexibility: Asynchronous systems provide flexibility in terms of timing and are often more resilient
to node failures or delays.
Challenges: Coordination in asynchronous systems can be more challenging, and additional
mechanisms (such as consensus algorithms) may be required to ensure consistency and
correctness.
Coordination Algorithms
Objective: Coordinate actions among distributed nodes to achieve a common
goal or perform a task collaboratively.
Examples:
•Two-Phase Commit (2PC): Coordinates a distributed decision to commit or
abort a transaction.
•Three-Phase Commit (3PC): An extension of 2PC with additional phases to
improve fault tolerance.
Distributed Mutual Exclusion Algorithms
Objective. Ensure that only one node at a time has exclusive access to a
shared resource.
Examples
•Ricart-Agrawala Algorithm: A distributed mutual exclusion algorithm based on
requesting and granting access.
•Maekawa's Algorithm: Uses a voting-based approach to ensure mutual
exclusion.
Distributed Synchronization Algorithms
Objective: Coordinate the clocks of distributed nodes to ensure a consistent
view of time.
Examples:
•Lamport's Logical Clocks: Assigns timestamps to events to establish a partial
ordering of events.
•Vector Clocks: A mechanism to capture causality between events in a
distributed system