Конференция прошла. Ждем вас на Т+ 2019!
Офис Mail.ru Group, Москва, 21 июня 2018

VShard - горизонтальное масштабирование в TarantoolГрид архитектура

Доклад принят в программу конференции
Владислав Шпилевой
Tarantool

Работает в Tarantool над разработкой серверной части. Занимался разработкой дискового движка и поддержкой движка в оперативной памяти. Разработал модуль горизонтального масштабирования, сделал первую версию слияния SQLite и Tarantool, разработал новый алгоритм обновления индексов на LSM-деревьях в дисковом движке. Разработал алгоритм смены мастера в репликационном кластере, алгоритм проксирования запросов внутри реплика-сета. Реализовал протокол Two-Phase Commit в Tarantool.

v.shpilevoy@tarantool.org
Тезисы
Презентация

До 2018 года единственным средством горизонтального масштабирования СУБД Tarantool был Shard - это модуль, реализующий шардинг - частный случай горизонтального масштабирования. Shard реализует шардирование по функции от первичного ключа, поддерживает изменение топологии кластера, ребалансировку. При этом у него есть три существенных недостатка:
- нет никакой возможности хранить логически связанные данные на одном узле, и ребалансировать их всегда вместе;
- ребалансировка либо успешно выполняется целиком, либо происходит ошибка, и все переносится заново;
- для ребалансировки требуется заново пересчитывать шард-функции от каждой записи в каждой таблице.

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

В рамках доклада пойдет речь о внутреннем устройстве VShard, о его подсистемах и реализации, с примерами использования.

API
,
Tarantool
,
Архитектурные паттерны
,
Отказоустойчивость
,
Распределенные системы
,
Разработка библиотек, включая open source библиотеки
,
Масштабирование с нуля
,
Логирование и мониторинг
,
Управление конфигурацией
,
Технологии отказоустойчивости и катастрофоустойчивости, бэкапы
,
Lua

Другие доклады секции Грид архитектура