После двух месяцев разработки состоялся выпуск библиотеки libmdbx 0.9.3 (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License. libmdbx является глубокой переработкой СУБД LMDB и по заявлению разработчиков превосходит своего прародителя по надежности, набору возможностей и производительности. Заявляется, что libmdbx до 20% быстрее LMDB в CRUD сценариях, и до 30% быстрее если при сборке libmdbx отключить внутренний контроль до сопоставимого с LMDB уровня.
Libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам CPU. В libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поддерживается автокомпактификация, автоматическое управление размером БД, единый формат БД для 32-битных и 64-битных сборок, оценка объёма выборок по диапазонам (range query estimation).
Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. C 2016 года проект финансируется компанией Positive Technologies и c 2017 года используется в её продуктах.
Основные новшества, доработки и исправления, добавленные после прошлого выпуска:
- Полностью переработан и протестирован спиллинг (функциональный аналог свопинга) на диск изменённых страниц БД в очень больших транзакциях;
- В API добавлена установка опций времени выполнения, что позволяет оптимизировать работу движка под конкретные сценарии использования;
- Ускорена сортировка внутренних списков страниц;
- За счёт использования C11 atomics улучшена поддержка архитектур со слабой моделью согласованности памяти. Однако, некоторая деградация производительности устранена уже после релиза.
- Доступен порт для FreeBSD (автор Mahlon E. Smith);
- Доступны привязки для GoLang (автор Alex Charov);
- Устранено более 10 ошибок и недочётов;
- Суммарно внесено более 150 изменений, удалено ~2500 строк, добавлено ~4100.