Гаечный Ключ. Репозиторий Newsql От Google

Гаечный ключ – географически распределенная, масштабируемая, многоверсионная база данных с поддержкой распределенных транзакций.

Хранилище было разработано инженерами Google для внутренних сервисов корпорации.

Исследовательская работа [8], описывающая основные принципы и архитектуру Spanner, была представлена на научной конференции.

10-й симпозиум USENIX по проектированию и внедрению операционных систем в 2012. Spanner — это эволюционное развитие своего предшественника NoSQL. Google Бигтаблица .

Сам Spanner принадлежит к семейству решений NewSQL. В исследовательской статье [8] утверждается, что конструкция Спаннера позволяет системе масштабируйте миллионы вычислительных узлов в сотнях центров обработки данных и работайте с триллионами строк данных.

.



Гаечный ключ.
</p><p>
 Репозиторий NewSQL от Google

Использование гаечного ключа Колосс (GFS нового поколения) в качестве уровня хранения и алгоритма разрешения коллизий Паксос .

В свою очередь, на основании ( наверху ) Спаннер построил распределенную СУБД Гугл Ф1 .

Гаечный ключ использовал в социальной сети Google+, в почтовом сервисе GMail. СУБД Google F1, построенная на базе Spanner, на момент публикации [8] использовалась в рекламном сервисе Google.



Основные принципы

Данные в Spanner хранятся в полуреляционные таблицы, имеющие схему .

Все данные имеют версию — временную метку ( временная метка ) подтверждение записи этих данных (коммит).

У Spanner есть SQL-подобный язык запросов, возможность настройки количества реплик и политики сборщика мусора, отвечающие за удаление записей со «старыми» временными метками.

Помимо уже «знакомых» миру NoSQL возможностей, Spanner также обладает рядом свойств, которые сложно реализовать в распределенных системах.

Такой как: поддерживать распределенные транзакции ; глобальная согласованность чтения между географически распределенными ДЦ, т.е.

данные, возвращаемые операциями чтения из разных ДЦ, всегда непротиворечивы и непротиворечивы.

Кроме того, Spanner обладает более характерными для СУБД функциями, такими как: неблокирующее чтение данных «из прошлого» (в прошлом); нет блокировок для транзакций только для чтения; атомарное изменение схемы таблицы данных; синхронная репликация; автоматическая обработка отказов как вычислительных узлов, так и ЦОД; автоматическая миграция данных как между вычислительными узлами, так и между ЦОД.



Архитектура

Каждый развернутый экземпляр ( развертывание ) Гаечный ключ называется Вселенная и содержит: Мастер Вселенной — мастер-процесс, координирующий работу множества зон (в терминологии Спаннера — Зона ); Много зон – географически распределенные (в целом) зоны Spanner. Зона — это единица как логической, так и физической изоляции.

Каждая Зона, в свою очередь, содержит: ZoneMaster – мастер-процесс зоны (одиночный); Многие – от сотен до нескольких тысяч – Спансерверы ; Прокси местоположения – раскрывать клиентам местонахождение Spanservers, ответственных за необходимые данные; Драйвер размещения – процесс (как и Zonemaster, синглтон), управляющий перемещением данных между разными Зонами.



Гаечный ключ.
</p><p>
 Репозиторий NewSQL от Google

В исследовательской работе [8] подробно описаны функции и внутренняя структура только Спансервер.

Каждый Spanserver содержит от 100 до 1000 структур данных, называемых планшет .



(key: string, timestamp: int64) -> string

В отличие от Bigtable, Spanner добавляет в структуру хранимых данных метку времени для добавления этих данных, что является важным введением в реализацию поддержки нескольких версий данных.

Модель данных в Spanner — полуреляционные таблицы с поддержкой схем данных (схематизированных), SQL-подобного языка запросов и распределенных транзакций.

Реализация последних (транзакций) стала возможной благодаря одной из самых инновационных инноваций для такого рода программных систем – программному интерфейсу.

API TrueTime .



TrueTime

Общая цель глобальных систем времени (особенно атомных часов) — обеспечить максимально точное время.

TrueTime API предоставляет клиентам глобальное время + некоторая неопределенность – TTинтервал.

Это необходимо, поскольку распределенным системам очень сложно гарантировать мгновенное реагирование узлов, что важно для обеспечения согласованности данных в распределенном хранилище.

В подходе, где вместо точного времени возвращается некоторый интервал времени, выполнение 2-х конкурирующих транзакций сводится (упрощается) к сравнению ТТ-интервала этих транзакций.

Если ТТинтервал транзакций не пересекается, то можно однозначно узнать, какая транзакция должна быть выполнена первой.

Если TTinterval пересекается, то можно сказать только с определенной долей вероятности.

( Подробнее об оборудовании сервиса TrueTime.) В самом Спаннере согласованность данных при проведении сделок обеспечивается протокол двухфазной фиксации транзакции (Протокол двухфазной фиксации), реализованный с использованием алгоритма Paxos.

Лимиты и CAP

На момент публикации исследовательской работы [8] Спаннер не поддержал вторичные индексы И автоматическая перешардинг в целях балансировки нагрузки.

Кроме того, авторы [8] отмечают, что Спаннер не способен эффективно выполнять сложные SQL-запросы .

Спаннер также не является «опровержением» теоремы CAP. Spanner не является системой AP, несмотря на свою природу NoSQL; и это не система CA, несмотря на поддерживать приверженность поддержке принципов ACID. Спаннер «жертвует» доступность ( доступность ) за поддержку целостность данных ( последовательность ) и, следовательно, является CP-системой.



Полученные результаты

Спаннер берет лучшие идеи из обоих миров - реляционная СУБД и NoSQL - и представляет СУБД генерации NewSQL .

Поддержка распределенных транзакций между центрами обработки данных с объемами данных петабайтного масштаба с такой масштабируемостью, безусловно, является чрезвычайно впечатляющей функцией для любой структурированной и полуструктурированной системы хранения данных.

Эта возможность во многом является результатом симбиоза двух подходов: подхода к хранению данных — данные неизменяемы и содержат метку времени фиксации — и инновационной концепции получения глобального времени — TrueTime.

Список источников*

[8] Джеймс К.

Корбетт, Джеффри Дин, Майкл Эпштейн, Эндрю Файкс, Кристофер Фрост, Дж.

Дж.

Фурман и др.

Spanner: глобально распределенная база данных Google. Труды ОСДИ, 2012. * Полный список источников , используемый для подготовки цикла.

Дмитрий Петухов, MCP, аспирант, IT-зомби, человек с кофеином вместо эритроцитов.

Теги: #Google #spanner #Big Data #NewSQL #NoSQL #Big Data

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.