Как работает MVCC в in-memory СУБД

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

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

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

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

Тезисы

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

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

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

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

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

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

VK

VK — крупная российская технологическая компания. Как и обо всех крупных компаниях, о ней не расскажешь в двух словах, зато есть подробная статья в википедии.

Видео

Подготовительное задание
Примерно наполовину это обзорный доклад про MVCC в in-memory, примерно на вторую половину - про конкретные алгоритмы и структуры данных для реализации MVCC.

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

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