Feature #8: Maximum Clock Skew

Implementing the "Maximum Clock Skew" feature for our "Network" project.

Description

Our network topology consists of routers interconnected in a tree structure. Messages are forwarded in this structure from ancestor nodes to descendant nodes. A system’s clock time value is stored in tree nodes representing the routers. We want to tune a distributed consensus algorithm that is parameterized by the maximum clock skew in a forwarding path. The clock skew can be defined as the difference between the time values of two routers in a network. The messages are forwarded over our tree from ancestors to descendants or vice versa. We want to find the maximum clock skew that we can encounter while forwarding the messages in the tree.

It is established that these time values cannot be the same, and clock skew is unavoidable. Therefore, obtaining the maximum skew value will highlight the two ancestor-descendant router pairs that are most out of sync. We’ll be provided with an n-ary tree structure, and our task is to identify the nodes that have the maximum difference in their time values.

Let’s understand this better with an illustration:

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.