Share
Embed
Калыс Осмонов: "B-Tree vs. LSM-Tree: какую систему БД использовать для следующего проекта"
Railsware
December 15, 2018
Transcript
23 slides
-
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 -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 2/23 Проблемы Проблемы при при выборе выборе
СУБД СУБД Проблемы Проблемы при при выборе выборе СУБД СУБД Overkill Ограниченный кругозор Отсутствие анализа -
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 -
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 -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 5/23 BoltDB BoltDB BoltDB BoltDB Стабильный и
надежный Популярный B-Tree Оптимизирован на чтение -
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( -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 15/23 BadgerDB BadgerDB BadgerDB BadgerDB Новый (январь
2017) LSM-Tree Оптимизиция на обновление данных -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 16/23 LSM-Tree LSM-Tree LSM-Tree LSM-Tree BigTable, HBase,
LevelDB, RocksDB, MongoDB, Apache Cassandra, In uxDB и т.д. -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 20/23 Объединение Объединение данных данных из из
SSTable SSTable Объединение Объединение данных данных из из SSTable SSTable -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 21/23 Процесс Процесс уплотнения уплотнения данных данных
(Compaction) (Compaction) Процесс Процесс уплотнения уплотнения данных данных (Compaction) (Compaction) -
12/16/2018 Tiligram http://ru.osmonov.com/events/gdg2018/index.html?print-pdf 22/23 B-Tree B-Tree LSM-Tree LSM-Tree Оптимизация на
чтение Оптимизация на запись Не хранится история всех изменений Отсутствие фрагментации Нужно дефрагментировать Нужно уплотнять Использование блокировок во время записи Параллельный доступ без блокировок