Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Калыс Осмонов: "B-Tree vs. LSM-Tree: какую сист...

Railsware
December 15, 2018

Калыс Осмонов: "B-Tree vs. LSM-Tree: какую систему БД использовать для следующего проекта"

Railsware

December 15, 2018
Tweet

More Decks by Railsware

Other Decks in Technology

Transcript

  1. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 1/23 B-Tree vs. LSM-Tree: B-Tree vs. LSM-Tree:

    какую какую систему систему B-Tree vs. LSM-Tree: B-Tree vs. LSM-Tree: какую какую систему систему БД БД использовать использовать для для следующего следующего БД БД использовать использовать для для следующего следующего проекта проекта проекта проекта @railsware
  2. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 2/23 Проблемы Проблемы при при выборе выборе

    СУБД СУБД Проблемы Проблемы при при выборе выборе СУБД СУБД Overkill Ограниченный кругозор Отсутствие анализа
  3. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 3/23 Пет Пет проджект проджект Tiligram Tiligram

    Пет Пет проджект проджект Tiligram Tiligram Go lang Bolt DB, Badger и embedded storage в целом Bleve search
  4. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 4/23 Локальные Локальные хранилища хранилища (Embeddable (Embeddable

    Локальные Локальные хранилища хранилища (Embeddable (Embeddable store) store) store) store) RocksDB (NATS, iron.io) LevelDB Badger Bolt Bunt
  5. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 5/23 BoltDB BoltDB BoltDB BoltDB Стабильный и

    надежный Популярный B-Tree Оптимизирован на чтение
  6. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 9/23 Бинарное Бинарное дерево дерево поиска поиска

    (BST) (BST) Бинарное Бинарное дерево дерево поиска поиска (BST) (BST) Массив Массив ( (несорт несорт.) .) Связный Связный список список Массив Массив ( (сорт сорт.) .) BS BS ( (ба ба Поиск O(n) O(n) O(log n) O( Добавление O(1) O(1) O(n) O( Удаление O(n) O(n) O(n) O(
  7. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 20/23 Объединение Объединение данных данных из из

    SSTable SSTable Объединение Объединение данных данных из из SSTable SSTable
  8. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 21/23 Процесс Процесс уплотнения уплотнения данных данных

    (Compaction) (Compaction) Процесс Процесс уплотнения уплотнения данных данных (Compaction) (Compaction)
  9. 12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 22/23 B-Tree B-Tree LSM-Tree LSM-Tree Оптимизация на

    чтение Оптимизация на запись Не хранится история всех изменений Отсутствие фрагментации Нужно дефрагментировать Нужно уплотнять Использование блокировок во время записи Параллельный доступ без блокировок