The Research that Inspired Clockwork Systems

Clockwork Systems was founded in 2018 by Stanford University researchers and experienced tech entrepreneurs, based on protocols developed at Stanford. Here’s a synopsis of the original paper and presentation that inspired the company.

The Clock Sync Challenge (a different sort of TikTok challenge)

Synchronizing clocks in a distributed system has long been an important problem. Accurate clocks enable applications to operate on a common time axis, which enables key functions like consistency, event ordering, causality and the scheduling of tasks and resources with precise timing. For example, in finance and e-commerce, clock synchronization is crucial for determining transaction order: a trading platform needs to match bids and offers in the order in which they were placed, even if they entered the trading platform from different gateways. 

Current methods of synchronizing clocks in a data center are either not accurate enough or require expensive hardware modifications. While it is very desirable to have accurately synchronized clocks in distributed systems, it’s hard to achieve in practice. 

For example, the most commonly used clocks have a quartz crystal oscillator, whose resonant frequency depends on the temperature. When there’s variance from its ideal operating temperature, a quartz clock may drift from true time at the rate of 6-10 microseconds/sec. But the one-way delay (OWD) in high-performance data centers is under 10 µs. So, if the clocks at the sender and receiver are not frequently and finely synchronized, packet timestamps are rendered meaningless! 

Second, “path noise” has made the nanosecond-level estimation of the OWD, a critical step in synchronizing clocks, exceedingly difficult. Large queuing delays can be determined and removed from the OWD calculation. But path noise—due to small fluctuations in switching times, path asymmetries (e.g., due to cables of different length) and clock timestamp noise—is not easy to estimate and remove. 

Exploiting a Natural Network Effect for Scalable, Fine-grained Clock Synchronization 

In this paper, researchers from Stanford and Google introduced HUYGENS, a probe-based, end-to-end clock synchronization algorithm. Because HUYGENS is implemented in software running on standard hardware, it can be readily deployed in current data centers without expensive upgrades. By leveraging some key aspects of modern data centers, and applying novel estimation algorithms and signal processing techniques, the HUYGENS algorithm achieved an accuracy of 10s of nanoseconds even at high network load.

HUYGENS leverages three key ideas. 

First, coded probes identify and reject impure probe data—data captured by probes which suffer queuing delays, random jitter, and NIC timestamp noise. 

Next, HUYGENS processes the purified data with Support Vector Machines, a widely-used and powerful classifier, to accurately estimate one-way propagation times and achieve clock synchronization to within 100 nanoseconds. 

Finally, HUYGENS exploits a natural network effect—finding it’s more accurate and scalable—to synchronize many clocks simultaneously than a pair at a time.

A Lightweight, Scalable Implementation

The findings from these Stanford researchers provided the basis for Clockwork’s enterprise solutions that are currently powering mission-critical enterprise applications across the world. Designed to support currently functioning data center deployments with no specialized hardware, this agnostic algorithmic approach enables organizations to get up and running quickly across diverse environments—on-prem, in the cloud, and hybrid—using virtual machines or bare metal servers.

Contact us at hello@clockwork.io to learn more and schedule a demo.

Interested in solving challenging engineering problems and building the platform that powers the next generation time-sensitive application? Join our world-class engineering team.

Request Demo

Learn more about our software-based, highly-accurate and scalable time service. Unleash new ways to program and observe distributed systems. Please complete the form below.