Не думай о секундах свысока
Наступит время сам поймешь наверное ...(:
Мировое время могут отвязать от вращения Земли, — Financial Times.
В середине октября Международное бюро мер и весов обсудит изменение системы всемирного координированного времени (UTC) и отказ от високосных секунд.
Причина в том, что примерно с 2015 года Земля вращается быстрее.
Угроза отрицательной секунды: Из-за ускорения до 2035 года впервые в истории может потребоваться вычесть «високосную секунду» из мирового времени (UTC).
Риск для цифровых систем: Компьютеры запрограммированы только на добавление секунд; их вычитание может спровоцировать глобальные сбои в телекоммуникациях, навигации и электросетях
Отказ от секунд: Учёные предлагают прекратить подстраивать атомное время под астрономическое с 20 мая 2027 года.
Високосный час: Разницу между шкалами разрешат накапливать, и когда она достигнет одного часа (на что уйдут тысячи лет), время скорректируют сразу на час
Как системы реагируют на появление 61-й секунды
Обычно високосная секунда добавляется в конце суток (в 23:59:59 UTC). Часы должны показать время 23:59:60, прежде чем перейти на 00:00:00. Для кода это аномалия, которая обрабатывается операционными системами тремя путями, и каждый из них несет свои риски
Жесткий откат назад (Step/Repeat): Сервер дважды повторяет одну и ту же секунду (например, два раза подряд наступает 23:59:59).
Игнорирование: Система делает вид, что ничего не произошло, из-за чего её время начинает спешить на 1 секунду относительно эталона UTC, пока не произойдет следующая принудительная синхронизация
Зацикливание процессора (CPU Livelock)В старых версиях ядер Linux (до версии 3.4) существовал знаменитый баг, связанный с высокоточными таймерами (hrtimer). Когда ядро получало уведомление о добавлении секунды, подсистема таймеров впадала в бесконечный цикл. Процессоры серверов моментально загружались на 100%, из-за чего оборудование зависало или уходило в перезагрузку. Это привело к крупным падениям Reddit, Mozilla, Foursquare и авиакомпании Qantas в 2012 году
Паника приложений и баз данных (Crash)Многие программы и базы данных (например, Cassandra или Hadoop) постоянно проверяют интервалы времени. Если функция замера интервала видит, что текущее время оказалось меньше или равно времени предыдущей операции (из-за повтора секунды), программа считает это критической ошибкой данных и аварийно завершает работу. Именно из-за этого (отрицательный интервал времени) в 2017 году произошел массовый сбой у Cloudflare
Нарушение работы распределенных системСовременные облачные сервисы и базы данных полагаются на точную синхронизацию между сотнями серверов. Если один сервер обработал високосную секунду методом отката, второй — методом остановки, а третий вообще её проигнорировал, в кластере возникает рассинхронизация. Это приводит к нарушению очередности транзакций, порче логов и блокировкам данных.
Как инженеры научились с этим бороться?
Чтобы не ломать логику программ «невозможным» временем, крупные технологические компании (Google, Amazon, Meta, Microsoft) внедрили метод под названием Leap Smearing («размазывание секунды»)
При таком подходе часы серверов идут чуть медленнее в течение суток, предшествующих событию. Компьютеры никогда не видят времени 23:59:60, а стрелка часов всегда движется только вперед
В прошлый раз "високосную" секунду добавили в 2012 году. Это привело к временному отключению ряда популярных интернет-ресурсов
Свидетельство о публикации №126090708089