Скачкообразный мазок

С 2008 года вместо того, чтобы применять високосные секунды к нашим серверам с помощью тактов, мы «размазывали» лишние секунды по часам до и после каждого прыжка. Смазка скачка применима ко всем службам Google, включая все наши API.

Предлагаемый нами стандартный мазок

Многие организации используют размазанные часы, и было бы полезно, если бы размазывания были одинаковыми. В конце концов, назначение часов — показывать одинаковое время в разных местах.

Мы рекомендуем всем, кто размазывает високосные секунды, использовать 24-часовое линейное размазывание с полудня до полудня UTC .

Этот мазок сочетает в себе функции, которые, как показал опыт, хорошо работают для многих приложений распределенных вычислений:

  • Большая продолжительность сохраняет изменение частоты небольшим. Изменение мазка составляет около 11,6 частей на миллион. Это находится в пределах производственных и тепловых погрешностей кварцевых генераторов большинства машин и значительно ниже максимальной скорости нарастания NTP 500 ppm.
  • Центрирование мазка по секунде координации вместо того, чтобы начинать или заканчивать ее в секунду координации, сводит к минимуму максимальное смещение.
  • По сравнению с косинусным разбросом линейный разброс проще, легче вычисляется и сводит к минимуму максимальное изменение частоты.
  • 24-часовая продолжительность была широко принята другими, применяющими мазки. Ранее мы использовали 20-часовую продолжительность мазка, но изменили ее, чтобы она соответствовала более популярному интервалу от полудня до полудня.

Мы планируем использовать этот мазок для всех будущих дополнительных секунд. Amazon использует этот мазок в AWS. Один из способов использовать его в ваших системах — настроить их на использование Google Public NTP .

Пример стандартного мазка

В этом примере мы предположим, что в конце декабря 2022 года будет дополнительная секунда, хотя фактическое расписание еще не объявлено.

Период размазывания начинается 31 декабря 2022 г., 12:00:00 UTC и продолжается до 01 января 2023 г., 12:00:00 UTC . До и после этого периода размазанные часы и служба времени согласуются с часами, использующими дополнительные секунды.

Во время мазка часы идут немного медленнее, чем обычно. Каждая секунда времени в размытой шкале времени примерно на 11,6 мкс длиннее, чем секунда в системе СИ , реализованная в земном времени .

В начале дополнительной секунды смазанное время отстает от UTC чуть менее чем на 0,5 с. UTC вставляет дополнительную секунду, в то время как смазанное время продолжается непрерывно. Это приводит к тому, что смазанное время становится чуть менее 0,5 с впереди UTC, когда заканчивается дополнительная секунда.

Продолжая запускать часы с той же замедленной скоростью, продолжающееся размытие уменьшает это смещение в течение следующих двенадцати часов. К 12:00:00 размазанные и прыгающие часы снова сходятся.

ТАЙ Неразмытое UTC Размазанное время
2022-12-31 12:00:36.000000 2022-12-31 11:59:59.000000 2022-12-31 11:59:59.000000
2022-12-31 12:00:37.000000 2022-12-31 12:00:00.000000 2022-12-31 12:00:00.000000
2022-12-31 12:00:38.000011 2022-12-31 12:00:01.000011 2022-12-31 12:00:01.000000
2023-01-01 00:00:35.499976 2022-12-31 23:59:58.499976 2022-12-31 23:59:58.000000
2023-01-01 00:00:36.499988 2022-12-31 23:59:59.499988 2022-12-31 23:59:59.000000
2023-01-01 00:00:37.000000 2022-12-31 23:59:60.000000 2022-12-31 23:59:59.500005
2023-01-01 00:00:37.500000 2022-12-31 23:59:60.500000 2023-01-01 00:00:00.000000
2023-01-01 00:00:38.000000 2023-01-01 00:00:00.000000 2023-01-01 00:00:00.499994
2023-01-01 00:00:38.500011 2023-01-01 00:00:00.500011 2023-01-01 00:00:01.000000
2023-01-01 00:00:39.500023 2023-01-01 00:00:01.500023 2023-01-01 00:00:02.000000
2023-01-01 12:00:36.999988 2023-01-01 11:59:58.999988 2023-01-01 11:59:59.000000
2023-01-01 12:00:38.000000 2023-01-01 12:00:00.000000 2023-01-01 12:00:00.000000
2023-01-01 12:00:39.000000 2023-01-01 12:00:01.000000 2023-01-01 12:00:01.000000

За 86 401 секунд SI мазка растяжение в 86 400 указанных секунд составляет в сумме одну дополнительную секунду SI, необходимую для скачка.

Отрицательная дополнительная секунда, если бы она когда-либо имела место, была бы размыта ускорением часов в течение 86 399 секунд SI с полудня до полудня.

Другие мазки

Было предложено или реализовано несколько других мазков.

  • UTC-SLS представляет собой линейное размытие за 1000 с до скачка (с 23:43:20 до 00:00:00).
  • Смазка Google 2008 года представляла собой 20-часовую косинусную размазку перед скачком (с 04:00:00 до 00:00:00). Это был единственный раз, когда мы использовали косинусное смазывание.
  • Второй мазок скачка Google был 20-часовым линейным мазком, сосредоточенным на прыжке. Мы использовали это в 2012, 2015 и 2016 годах.
  • Мазок Блумберга представляет собой линейный мазок через 2000 с после скачка (с 00:00:00 до 00:33:20).
  • Мейнберг реализовал косинусное размытие настраиваемой продолжительности.

Программная поддержка мазка

Наша несмазанная библиотека с открытым исходным кодом будет преобразовывать в любом направлении между смазанным временем и несмазанным TAI или GPST.