Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a21b9d75a85e3014

Jump to content

// Workers AI · dad joke modeWhat did Cristian's algorithm say? "I've got a formula for success.

From Wikipedia, the free encyclopedia

Cristian's algorithm (introduced by Flaviu Cristian in 1989)[1] is a method for clock synchronization which can be used in many fields of distributive computer science but is primarily used in low-latency intranets. Cristian observed that this simple algorithm is probabilistic, in that it only achieves synchronization if the round-trip time (RTT) of the request is short compared to required accuracy. It also suffers in implementations using a single server, making it unsuitable for many distributive applications where redundancy may be crucial.

Description

[edit]

Cristian's algorithm works between a process P, and a time server S connected to a time reference source. Put simply:

  1. P requests the time from S at time t0.
  2. After receiving the request from P, S prepares a response and appends the time T from its own clock.
  3. P receives the response at time t1 then sets its time to be T + RTT/2, where RTT=t1-t0.

If the RTT is actually split equally between request and response, the synchronisation is error-free. But due to unpredictable influences, this assumption is regularly not true. Longer RTTs indicate interference that is generally asymmetrical. Offset and jitter of the synchronisation are thus minimised by selecting suitable RTT from a set of many request/response pairs. Whether an RTT can be accepted at a given time depends on the drift of the clock and on the statistics of the RTT. These quantities can be measured in the course of synchronisation, which optimises the method by itself.

See also

[edit]

References

[edit]
  1. Cristian, Flaviu (1989), "Probabilistic clock synchronization" (PDF), Distributed Computing, 3 (3), Springer: 146–158, doi:10.1007/BF01784024, S2CID 3170166