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