Как работает MVCC в In-Memory-СУБД

25 ноября, 14:40, «h3: Яндекс трек»

Средняя сложность
Доклад принят в программу конференции
Tarantool
Архитектура данных, потоки данных, версионирование
Tarantool
Архитектура данных, потоки данных, версионирование

Мнение Программного комитета о докладе

В докладе будет дан обзор подходов для реализации MVCC в in-memory-базах данных, а также границы их применимости. Во второй части будут раскрыты особенности реализации снапшотов в Tarantool.

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

Пользователи и разработчики баз данных.

Тезисы

Один из ключевых механизмов любой СУБД — это возможность предоставить согласованное состояние данных в базе в виде "снимка" или "снапшота". Этот механизм используется в первую очередь для организации изоляции транзакций: каждая транзакция видит свою версию состояния базы данных. В сочетании с другими механизмами это порождает технологию MVCC, когда транзакции независимо и одновременно видят каждая свое собственное состояние БД и работают в нем. Помимо этого, снимок состояния базы данных (записанный в файл) можно использовать для восстановления после перезапуска, а также для инициализации реплики.

Изначально MVCC был придуман и реализован для дисковых БД, это хорошо известная и описанная технология. Последующее развитие баз данных в памяти привело к созданию специализированных подходов именно к базам данных в памяти.

В этом докладе я на примере In-Memory-СУБД Tarantool в памяти расскажу, как устроены снимки данных и MVCC, как и почему эволюционировали эти алгоритмы, во что обходится поддержание этих структур пользователю, как правильно использовать и что ожидать от этих механизмов.

Спикеры

Александр Ляпунов
Закончил МФТИ, большую часть жизни работал программистом в разных областях. В основном пишет на C/C++ в сфере разработки баз данных. Интересуется алгоритмами и оптимизацией. Работает в Tarantool-подразделении VK, разрабатывают СУБД Tarantool.

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