- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

[Источник [3]]

Автор: alizar

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/google/21121

Ссылки в тексте:

[1] научной работы: http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/archive/spanner-osdi2012.pdf

[2] после добавления високосной секунды: http://habrahabr.ru/post/146863/

[3] Источник: http://www.wired.com/wiredenterprise/2012/11/google-spanner-time/all/

[4] Источник: http://habrahabr.ru/post/160301/