mtrempoltsev / highload2021_versioning

Материалы к докладу на Highload 2021

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Реализация Slowly Changing Dimension на Tarantool

Реализованы типы:

  • Type 1
  • Type 2
  • Type 3
  • Type 4

Type 1

  • Хранится только последняя версия
  • Отсутствие накладных расходов

Type 2

  • Добавлена колонка, которая хранит номер версии
  • Потенциально менее производительные запросы на чтение из-за того, что все версии хранятся в одной таблице

Type 3

  • Для изменяемых полей добавляется дополнительное поле хранящее предыдущее значение
  • История ограничена одним значением

Type 4

  • Для хранения истории используется дополнительная таблица
  • Отсутствие накладных расходов при чтении неисторических данных
  • Добавление новой версии требует записи в 2 таблицы

Запуск тестов

make test

Запуск демо

make scd_type_1
make scd_type_2
make scd_type_3
make scd_type_4

About

Материалы к докладу на Highload 2021

License:MIT License


Languages

Language:Lua 88.1%Language:Python 9.3%Language:Makefile 2.5%