С 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.