libmdbx 0.9.2

Опубликовано August@Karro - сб, 11/28/2020 - 10:48
libmdbx является трёхгодичным форком Lightning Memory-Mapped Database (LMDB). Но только с 2017 года развитие проекта не сдерживается необходимостью совместимости с прародителем, в том числе по формату файлов БД. 

В 2017 году libmdbx получил новый импульс развития. С одной стороны, были выполнены обязательства по сохранению совместимости. С другой стороны, был задействован в «Позитивных таблицах» компании Positive Technologies. 

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

Кратко рассмотрим самые важные свойства и связанные с ними плюсы/минусы:

  • Встраиваемый движок:
  • Встраиваемость становится весомым плюсом когда отдельный серверный процесс не требуется, тем более если этого хочется избежать. 

С другой стороны, при встраивании, со стороны остального кода, есть неизбежный риск повреждения внутренних структур данных движка. Что может приводить к повреждению БД.

Основные новшества, доработки:

  • Доступны привязки для Nim (автор Jens Alfke, архитектор в Couchbase) и Rust (автор Clément Renault, основатель MeiliSearch).
  • Доступен пакет для buildroot (ожидается обновление).
  • Устранено более 20 ошибок и недочетов, в том числе обеспечена работа на Windows 2000/XP (для Miranda NG).
  • Добавлены функции копирования курсоров, безопасного удаления файлов БД в многопроцесной среде и функционал поиска lowerbound для multimap (с поддержкой сортировки multi-value элементов). Ускорено завершение вложенных транзакций.
  • Расширены внутренние тесты, в том числе для применения библиотеки в TurboGeth/Ethereum.

C предыдущего релиза внесено более 130 изменений, удалено ~1200 строк, добавлено ~3500.

 

Последние материалы