Разработка и реализация алгоритма отложенного обновления вторичных индексов
на LSM-деревьях в базах данных

Выполнил:

Шпилевой Владислав Дмитриевич

Научный руководитель:

Волканов Дмитрий Юрьевич

План

  1. Актуальность
  2. Постановка задачи
  3. Решение
  4. Результаты

Актуальность

B-tree

Read/Write

balance

HDD

Память

Диск

Уровень 0

Уровень 1

Уровень N

LSM-tree

SSD

Много случайной записи

Запись всегда
последовательна

Read/Write

disbalance

Актуальность

REPLACE

DELETE

Конец

Хороший сценарий:

Нет записи / чтений диска

REPLACE

DELETE

Конец

Плохой сценарий:

Чтение диска

Первичный индекс

Первичный индекс

Вторичный индекс

Прочитать

старые данные из первичного индекса, удалить из всех

Вставка в первичный

индекс

Вставка во все индексы

Вторичный индекс

Постановка задачи

Разработать и реализовать алгоритм отложенного обновления вторичных индексов на LSM деревьях

  • Удаление через вставку
  • Нет обращений к диску

Разработанный алгоритм

REPLACE

DELETE

Конец

Нет чтений диска

Первичный индекс

Вторичный индекс

Вторичный индекс

Вставка во все индексы

Вставка:

Слияние уровней:

Первичный индекс

Вторичный индекс

Вторичный индекс

Ключи

старых версий

Практические результаты

  • Теоретическое ускорение - более чем в два раза;
  • Реализация на основе БД Tarantool;
  • Практическое ускорение записи - до 10 раз;
  • Практическое замедление чтений - от 2 раз.

Практические результаты

REPLACE + DELETE нагрузка

INSERT + UPDATE + SELECT нагрузка

x10

x2

Итог

  • Разработан алгоритм обновления LSM-деревьев с отложенным удалением старых данных;
  • Алгоритм реализован на архитектуре БД Tarantool;
  • Получена математическая оценка увеличения скорости записи;
  • Проведено экспериментальное исследование;
  • Доклад на конференции "Ломоносов-2018".

Оценки

Ускорение REPLACE:

Ускорение DELETE:

Защита диссертации

By Vladislav Shpilevoy

Защита диссертации

  • 1,284