Spanner — это распределенная служба управления и хранения баз данных SQL , разработанная Google . [1] Она предоставляет такие функции, как глобальные транзакции, строго согласованные чтения, автоматическая многосайтовая репликация и отказоустойчивость. Spanner используется в Google F1 , базе данных для рекламного бизнеса Google Ads , а также Gmail и Google Photos. [2] [3]
Функции
Spanner хранит большие объемы изменяемых структурированных данных. Spanner позволяет пользователям выполнять произвольные запросы с использованием SQL с реляционными данными, сохраняя при этом сильную согласованность и высокую доступность для этих данных с синхронной репликацией.
Основные возможности Spanner:
Транзакции можно применять к строкам, столбцам, таблицам и базам данных в рамках вселенной Spanner.
Клиенты могут контролировать репликацию и размещение данных с помощью автоматической многосайтовой репликации и отказоустойчивости.
Репликация синхронная и строго последовательная.
Чтения строго согласованы, а данные версионируются, чтобы обеспечить возможность чтения устаревших данных: клиенты могут читать предыдущие версии данных с учетом окон сборки мусора.
Поддерживает собственный интерфейс SQL для чтения и записи данных.
SQL-возможности Spanner были добавлены в 2017 году и задокументированы в документе SIGMOD 2017. [5] Он стал доступен как часть Google Cloud Platform в 2017 году под названием «Cloud Spanner». [6]
Архитектура
Spanner использует алгоритм Paxos в своей работе по сегментированию (разделению) данных на сотни серверов. [1] Он активно использует аппаратную синхронизацию часов с использованием часов GPS и атомных часов для обеспечения глобальной согласованности . [1] TrueTime — это торговая марка распределенной облачной инфраструктуры Google, которая предоставляет Spanner возможность генерировать монотонно увеличивающиеся временные метки в центрах обработки данных по всему миру. [7]
^ Кларк, Джек (18 сентября 2012 г.). «Google представляет Spanner — технологию баз данных, способную охватить всю планету». ZDNet . Получено 4 августа 2021 г.
↑ Spanner: Становление SQL-системы. 9 мая 2017 г. С. 331–343. doi :10.1145/3035918.3056103. ISBN9781450341974. S2CID 3055672.
^ Шривастава, Дипти (14 февраля 2017 г.). «Представляем Cloud Spanner: глобальную службу баз данных для критически важных приложений». Блог Google Cloud . Получено 4 августа 2021 г.
^ "Cloud Spanner: TrueTime и внешняя согласованность". Google Cloud . Получено 24.11.2020 .
^ Шут и др. 2012, стр. 19: «Резюме: мы перенесли большой и критически важный пакет приложений из MySQL в F1».
Дейт, Кристофер «Крис» Дж. (2004), «6. Отношения, часть II. Реляционная модель», Введение в системы баз данных (8-е изд.), Addison Wesley, ISBN978-0-32119784-9.