Leap Smear

Since 2008, instead of applying leap seconds to our servers using clock steps, we have "smeared" the extra second across the hours before and after each leap. The leap smear applies to all Google services, including all our APIs.

Details of the smear for leap second #37

For the leap second #37, on December 31, 2016, we used a 20-hour linear smear. The smear period started at 2016-12-31 14:00:00 UTC and continued through 2017-01-01 10:00:00 UTC. Before and after this period, our clocks and time service agreed with servers that apply leap seconds.

During the smear, Google's clocks ran slightly slower than usual. Each second of time marked by Google's servers was about 13.9 μs longer than an SI second. At the beginning of the leap second, smeared time was just under 0.5 s behind UTC. UTC inserted an additional second while smeared time continued uninterrupted, causing smeared time to become just under 0.5 s ahead of UTC when the leap second ended.

By continuing to run the clocks at the same slowed rate, the ongoing smear reduced this offset over the next ten hours. By 10:00:00, smeared and leaping clocks agreed again.

TAI Unsmeared UTC Smeared time
2016-12-31 14:00:35.000000 2016-12-31 13:59:59.000000 2016-12-31 13:59:59.000000
2016-12-31 14:00:36.000000 2016-12-31 14:00:00.000000 2016-12-31 14:00:00.000000
2016-12-31 14:00:37.000014 2016-12-31 14:00:01.000014 2016-12-31 14:00:01.000000
2017-01-01 00:00:34.499972 2016-12-31 23:59:58.499972 2016-12-31 23:59:58.000000
2017-01-01 00:00:35.499986 2016-12-31 23:59:59.499986 2016-12-31 23:59:59.000000
2017-01-01 00:00:36.000000 2016-12-31 23:59:60.000000 2016-12-31 23:59:59.500007
2017-01-01 00:00:36.500000 2016-12-31 23:59:60.500000 2017-01-01 00:00:00.000000
2017-01-01 00:00:37.000000 2017-01-01 00:00:00.000000 2017-01-01 00:00:00.499993
2017-01-01 00:00:37.500014 2017-01-01 00:00:00.500014 2017-01-01 00:00:01.000000
2017-01-01 00:00:38.500028 2017-01-01 00:00:01.500028 2017-01-01 00:00:02.000000
2017-01-01 10:00:35.999986 2017-01-01 09:59:58.999986 2017-01-01 09:59:59.000000
2017-01-01 10:00:37.000000 2017-01-01 10:00:00.000000 2017-01-01 10:00:00.000000
2017-01-01 10:00:38.000000 2017-01-01 10:00:01.000000 2017-01-01 10:00:01.000000

Over the 72,001 SI seconds of the smear, the stretch in the 72,000 indicated seconds added up to the one additional SI second required by the leap.

This is the same way that we smeared during leap #35, in June 2012, and leap #36, in June 2015.

Other smears

Several other smears have been proposed or implemented.

  • UTC-SLS is a linear smear over 1,000 s before the leap (23:43:20 to 00:00:00).
  • Google's 2008 smear was a 20-hour cosine smear before the leap (04:00:00 to 00:00:00). We used a cosine smear only for leap #34.
  • Bloomberg's smear is a linear smear over 2,000 s after the leap (00:00:00 to 00:33:20).
  • Amazon, Microsoft, and Akamai have implemented 24-hour smears.

Our proposed standard smear

Although we decided it would be safest for Google's infrastructure to handle the 2016 leap second using a 20-hour smear, the same way we handled the leap seconds in 2012 and 2015, this is not the only smear that works well. Many organizations use smeared clocks, and it would be helpful if the smears were the same. After all, the purpose of clocks is to read the same time in different places.

We would like to propose to the community, as the best practice for leap seconds in the future, a 24-hour linear smear from noon to noon UTC. We plan to use this smear starting from leap second #38, which is likely to be in 2018.

This smear combines the features that experience has shown to work well for many distributed computing applications:

  • The long duration keeps the frequency change small. The change for the smear is about 11.6 ppm. This is within the manufacturing and thermal errors of most machines' quartz oscillators, and well under NTP's 500 ppm maximum slew rate.
  • Centering the smear on the leap second, instead of having it begin or end at the leap second, minimizes the maximum offset.
  • Compared to a cosine smear, the linear smear is simpler, easier to calculate, and minimizes the maximum frequency change.
  • The 24-hour duration has been widely adopted by others implementing smears. We plan to change from our 20-hour duration to align with this more popular noon-to-noon interval.