На прошлой неделе разработчики отчитались о релизе новой версии высокопроизводительной встраиваемой СУБД libdbx v. 0.9.3. База данных относится к классу компактных БД "ключ-значение". Код libmdbx распространяется под лицензией OpenLDAP Public License.
C 2016 года проект финансируется компанией Positive Technologies, а c 2017 года активно используется в ее продуктах.
СУБД libmdbx — это глубокая переработка СУБД LMDB. Как заявляют разработчики libmdbx, их разработка превосходит материнский проект как по надежности, так и по набору возможностей и производительности.
Основные обновления версии libdbx 0.9.3 относительно версии 0.9.2:
переработан и протестирован спиллинг (функциональный аналог свопинга) на диск измененных страниц БД в очень больших транзакциях;
в API добавлена установка опций времени выполнения, что позволяет оптимизировать работу движка под конкретные сценарии использования;
ускорена сортировка внутренних списков страниц;
с помощью C11 atomics улучшена поддержка архитектур со слабой моделью согласованности памяти;
доступен порт для FreeBSD;
доступны привязки для GoLang.
Важным преимуществом libmdbx является то, что она, по заявлениям авторов проекта, до 20% быстрее LMDB в CRUD-сценариях (create, read, update and delete), и до 30% быстрее во время сборки. Последнее, правда, достигается только если отключить внутренний контроль до сопоставимого с LMDB уровня. Еще одной особенностью libmdbx является использование ACID — строгой сериализации изменений и неблокирующего чтения с линейным масштабирование по ядрам CPU.
Хотя проект и опенсорсный, разработчики много внимания уделяют качеству кода, тестированию, проверкам и стабильности работы API. Так, libmdbx поддерживает автокомпактификацию, автоматическое управление размером БД, единый формат БД для 32-битных и 64-битных сборок и оценку объёма выборок по диапазонам (range query estimation).
Читайте также: Быстрый туториал по установке и эксплуатации CrowdSec.