Pull to refresh

Работа с временем в Google

Reading time 2 min
Views 52K

Высокоточный рубидиевый осциллятор PRS10

Компания Google решила отказаться от использования NTP (Network Time Protocol) и создала свою собственную систему проверки времени с GPS и атомными часами, более точную и надёжную. Её назвали TrueTime API. Система работает для обеспечения целостности крупнейшей в мире базы данных Google Spanner, распределённой по всему миру.

В середине сентября 2012 года компания Google впервые обнародовала информацию о своей уникальной базе данных, которая глобально распределена по дата-центрам Google на разных континентах — и при этом обеспечивает целостность и синхронизацию данных. Специалисты считают, что ничего подобного нет ни у одной другой компании из тех, кто работает с большими объёмами данных, включая Facebook.

Как можно понять из опубликованной в сентябре научной работы, ключевой инновацией в Google Spanner является обеспечение цельности данных за счёт новой системы кодирования информации о времени транзакций. Инженеры Google разработали многоуровневую систему проверки времени, записи временных интервалов транзакций и оценки уровня надёжности меток о времени. Это ключевой фактор, от которого зависит надёжность системы.

Обычно дата-центры и веб-сервисы полагаются на NTP (Network Time Protocol) — онлайновые сервисы, которые выдают информацию с атомных часов, но из-за сетевых лагов такие методы не обеспечивают точность, которая подходит для работы крупного дата-центра. А иногда протокол NTP вообще серьёзно сбоит, как это случилось недавно, после добавления високосной секунды.

В общем, компания Google решила отказаться от NTP и создать свою собственную систему проверки времени, более точную и надёжную. Её назвали TrueTime API.

Вместо приёма данных с внешних часов, компания Google оборудовала дата-центры собственными атомными часами и ресиверами GPS. Это оборудование подключено к некоторым серверам, которые раздают метки времени всем остальным серверам в дата-центре. По факту, на каждой машине в дата-центре работает в фоновом режиме демон, который постоянно опрашивает сервер времени в своём дата-центре и аналогичные серверы времени в других дата-центрах. Таким образом, серверы Google во всём мире гарантированно работают на одном времени.



Через Google TrueTime API обеспечивается синхронизация данных, когда разные дата-центры пытаются одновременно записать в одну и ту же ячейку в БД. Интерфейс TrueTime API выдаёт значение интервала времени TTinterval: это время с заложенной погрешностью измерения и неопределённостью. Если интервалы TTinterval двух конкурентных транзакций не пересекаются, то можно с уверенностью сказать, какая из них произошла раньше. Если они пересекаются, это означает некоторую долю неопределённости.

Компании Google пришлось установить GPS-антенны на крышах своих дата-центров и атомные часы внутри серверных стоек в дата-центрах. Стоимость даже очень хороших атомных часов относительно невелика по сравнению со стоимостью серверов в каждой стойке.


Атомные часы на коротком промежутке времени работают надёжнее, чем GPS, но на длинном промежутке времени их нужно привязывать к GPS.

[Источник]
Tags:
Hubs:
+56
Comments 31
Comments Comments 31

Articles