0% found this document useful (0 votes)
27 views

Clock Synchronization

Physical clock synchronization, such as the Berkeley Algorithm, aims to keep the actual clocks of distributed systems aligned by designating a time server and periodically adjusting other clocks to match it. Logical clock synchronization, like Lamport's Algorithm, instead focuses on ordering events based on causality using logical clocks without synchronizing physical times - it assigns timestamps to events to reflect causal relationships even if clock values differ. Both approaches are important for consistency in distributed systems.

Uploaded by

saugat stha
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Clock Synchronization

Physical clock synchronization, such as the Berkeley Algorithm, aims to keep the actual clocks of distributed systems aligned by designating a time server and periodically adjusting other clocks to match it. Logical clock synchronization, like Lamport's Algorithm, instead focuses on ordering events based on causality using logical clocks without synchronizing physical times - it assigns timestamps to events to reflect causal relationships even if clock values differ. Both approaches are important for consistency in distributed systems.

Uploaded by

saugat stha
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

**Clock Synchronization:**

Clock synchronization refers to the process of ensuring that the time maintained by different clocks in a distributed computing environment is accurate and consistent. In a distributed system, where multiple computers or processes communicate and
coordinate with each other, having synchronized clocks is essential for proper functioning, data consistency, and event ordering.

There are two main types of clock synchronization: physical clock synchronization and logical clock synchronization.

**Physical Clock Synchronization - Berkeley Algorithm:**

The Berkeley algorithm is used to synchronize the physical clocks of computers in a network. It's particularly useful when there is a need to maintain a reasonably accurate time across multiple machines in a distributed system.

In the Berkeley algorithm, one of the computers is designated as the "time server" or "master," and the other computers synchronize their clocks with it. The process involves the following steps:

1. The time server periodically polls the clocks of other computers in the network to determine their clock offsets (the difference between the time server's clock and the remote computer's clock).

2. The time server calculates the average clock offset based on the polled values and sends adjustment values to each remote computer. These adjustment values are used to update the remote clocks to be closer to the time server's clock.

3. Each remote computer applies the adjustment to its clock, which helps synchronize its clock with the time server's clock.

**Example of Physical Clock Synchronization (Berkeley Algorithm):**

Let's say there are three computers in a network: A, B, and C. Computer A is the time server, and computers B and C are clients. The clocks of B and C are running slightly faster than A's clock.

1. A polls B and C's clocks and calculates the average offset: (B's offset + C's offset) / 2.

2. A sends adjustment values to B and C.

3. B and C apply the adjustments to their clocks, which slows them down slightly.

As a result of this process, B and C's clocks are synchronized more closely with A's clock, reducing the clock skew between them.

**Logical Clock Synchronization - Lamport's Algorithm:**

Logical clock synchronization is about maintaining a causal relationship between events in a distributed system. Lamport's algorithm uses logical clocks, often referred to as Lamport timestamps, to order events based on their causality.

In Lamport's algorithm, each process maintains a logical clock that is incremented whenever the process initiates an event. When a process sends a message, it includes its current logical clock value in the message. Upon receiving a message, the receiving
process adjusts its logical clock to be at least as large as the sender's clock and then increments its clock before initiating the next event.

This algorithm doesn't aim to synchronize physical clocks but rather ensures that events are ordered based on causal relationships.

**Example of Logical Clock Synchronization (Lamport's Algorithm):**

Consider two processes, P1 and P2, in a distributed system. The logical clocks start at 0 for both AQAprocesses.

1. P1 initiates an event and increments its logical clock to 1.


2. P1 sends a message to P2. The message includes P1's logical clock value of 1.

3. P2 receives the message. P2 adjusts its logical clock to be max(its clock, received clock) + 1, which becomes 2. P2 then initiates an event and increments its logical clock to 3.

Even though P2's logical clock value is higher than P1's after the message exchange, this doesn't imply that P2's clock is "ahead" of P1's in a real-time sense. It simply reflects the order of events in a causal relationship.

In summary, physical clock synchronization (Berkeley Algorithm) aims to align actual time across distributed machines, while logical clock synchronization (Lamport's Algorithm) focuses on ordering events based on causality without necessarily aligning the
physical clocks.

You might also like