Использование дерева LSM, такого как LevelDB, в качестве механизма хранения для RDBMS

Дерево LSM было успешно использовано во многих механизмах no-sql, его данные сортируются по ключам, а не по хеш-таблицам, что позволяет использовать их много за пределами хранилища kv. Например, база данных временных рядов (TSDB) может хорошо подходить, используя уровень db в качестве своего движка. Как насчет традиционной РСУБД и многих настольных систем? Являются ли механизмы обработки данных, подобные дереву LSM, подходящими?

1 ответ

Это может быть. Если вы собираетесь разрабатывать индексы таким образом, чтобы использовать сильные стороны leveldb (а именно быстрое последовательное чтение), тогда он может работать хорошо.

На самом деле я построил небольшую реляционную базу данных поверх leveldb ( linqdb), где index - это просто отсортированные значения столбца, хранящиеся в виде ключей-значений. Мои выводы заключаются в том, что запросы к такой структуре выполняются не так быстро, как индексированные столбцы sqlite (примерно на 40% медленнее), но запись выполняется с большим отрывом.

Конечно, есть много факторов, влияющих на скорость запросов, LSM - это просто базовая структура данных, которая лучше всего подходит для записи.

Дополнительная информация здесь

Другие вопросы по тегам