Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

YDB: мультиверсионность в распределенной базе

Базы данных и системы хранения

Распределенные БД

Доклад принят в программу конференции

Целевая аудитория

Все, кто интересуется распределенными системами, базами данных.

Тезисы

В докладе расскажем про особенности выполнения распределенных транзакций, что мы делаем для того, чтобы их поведение было привычным для пользователя. Мы хотим предоставить возможность взятия снапшота всей базы на начало выполнения транзакции, но без MVCC эта операция очень дорогая, так как в интерактивной транзакции заранее неизвестно, какие таблицы или диапазоны ключей будут затронуты. Реализация MVCC позволяет нам читать состояние базы на нужный момент времени в прошлом, и задача взятия снапшота сводится к выбору глобального Timestamp.

Погрузимся в особенности реализации MVCC в YDB:
* MVCC поверх LSM-деревьев;
* как мы сделали MVCC с консистентными снапшотами в распределенной базе данных;
* почему выбрали глобальные, а не локальные таймстемпы.

Рассмотрим за и против: с одной стороны, с MVCC мы можем достаточно дешево реализовать консистентные снапшоты уровня базы во всех запросах, достигать большего параллелизма за счет большего реордеринга транзакций. С другой стороны, на хранение истории требуется дополнительное место.

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

Руководитель Yandex Database. Руководит отделом разработки систем хранения и обработки данных, в который входит команда Yandex Database. Отвечает за слой хранения данных в Yandex.Cloud. До этого занимался веб-роботом Поиска, задачами управления данными в департаменте инфраструктуры.

Яндекс

Яндекс — технологическая компания, которая создаёт инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах. Основные бизнес-направления: поиск и электронная коммерция, сервисы объявлений, медиасервисы, онлайн-заказ такси и еды, беспилотные автомобили, продукты для рекламодателей и владельцев бизнеса. Яндекс также активно развивает проекты с открытым исходным кодом, например, библиотеку машинного обучения CatBoost.

Видео