| ▲ | genidoi 2 days ago | |||||||||||||||||||
Atomic clock non-expert here, what does having a fleet of atomic clocks entail and why would the hyperscalers bother? | ||||||||||||||||||||
| ▲ | Gabrys1 2 days ago | parent | next [-] | |||||||||||||||||||
Having clocks synchronized between your servers is extremely useful. For example, having a guarantee that the timestamp of arrival of a packet (measured by the clock on the destination) is ALWAYS bigger than the timestamp recorded by the sender is a huge win, especially for things like database scaling. For this though you need to go beyond NTP into PTP which is still usually based on GPS time and atomic clocks | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | synack 2 days ago | parent | prev | next [-] | |||||||||||||||||||
Spanner depends on having a time source with bounded error to maintain consistency. Google accomplishes this by having GPS and atomic clocks in several datacenters. https://static.googleusercontent.com/media/research.google.c... https://static.googleusercontent.com/media/research.google.c... | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | Youden 2 days ago | parent | prev [-] | |||||||||||||||||||
There's a lot of focus in this thread on the atomic clocks but in most datacenters, they're not actually that important and I'm dubious that the hyperscalers actually maintain a "fleet" of them, in the sense that there are hundreds or thousands of these clocks in their datacenters. The ultimate goal is usually to have a bunch of computers all around the world run synchronised to one clock, within some very small error bound. This enables fancy things like [0]. Usually, this is achieved by having some master clock(s) for each datacenter, which distribute time to other servers using something like NTP or PTP. These clocks, like any other clock, need two things to be useful: an oscillator, to provide ticks, and something by which to set the clock. In standard off-the-shelf hardware, like the Intel E810 network card, you'll have an OXCO, like [1], with a GPS module. The OXCO provides the ticks, the GPS module provides a timestamp to set the clock with and a pulse for when to set it. As long as you have GPS reception, even this hardware is extremely accurate. The GPS module provides a new timestamp, potentially accurate to within single-digit nanoseconds ([2] datasheet), every second. These timestamps can be used to adjust the oscillator and/or how its ticks are interpreted, such that you maintain accuracy between the timestamps from GPS. The problem comes when you lose GPS. Once this happens, you become dependent on the accuracy of the oscillator. An OXCO like [1] can hold to within 1µs accuracy over 4 hours without any corrections but if you need better than that (either more time below 1µs, or more accurate than 1µs over the same time), you need a better oscillator. The best oscillators are atomic oscillators. [2] for example can maintain better than 200ns accuracy over 24h. So for a datacenter application, I think the main reason for an atomic clock is simply for retaining extreme accuracy in the event of an outage. For quite reasonable accuracy, a more affordable OXCO works perfectly well. [0]: https://docs.cloud.google.com/spanner/docs/true-time-externa... [1]: https://www.microchip.com/en-us/product/OX-221 [2]: https://www.u-blox.com/en/product/zed-f9t-module [3]: https://www.microchip.com/en-us/products/clock-and-timing/co... | ||||||||||||||||||||
| ||||||||||||||||||||