Eliberată версия 0.9.1 библиотеки libmdbx (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Licență publică OpenLDAP.
Текущая версия является компромиссом между намерением выпустить долговременную стабильную версию 1.0 с полноценной поддержкой C++ и нежеланием откладывать релизы из-за неготовности к заморозке нового C++ API. Представленный релиз является результатом 9 месяцев работы направленной на стабилизацию библиотеки и повышения удобства её использования, а также включает предварительную версию API C++.
Библиотека libmdbx является не просто «форком», а кардинально переработанным потомком LMDB — SGBD tranzacțional încorporat din clasa „cheie-valoare” bazată pe arborele B+ fără înregistrare proactivă, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД без выделенного серверного процесса. Libmdbx принципиально se extinde возможности своего прародителя, одновременно устраняя, либо смягчая недостатки. При этом, по убеждению разработчиков, libmdbx немного быстрее и существенно надежнее LMDB.
libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам CPU. Результаты тестирования производительности (отправка параллельных запросов на чтение/поиск в 1-2-4-8 потоках на CPU i7-4600U c 2-я физическими ядрами в режиме 4-х потоков HyperThread):
Cele mai importante diferențe dintre MDBX și LMDB:
Принципиально больше внимания уделяется качеству кода, «непадучести» API, тестированию и автоматическим проверкам.
Control semnificativ mai mare în timpul funcționării, de la verificarea parametrilor până la auditul intern al structurilor bazei de date.
Auto-compactare și gestionarea automată a dimensiunii bazei de date.
Un singur format de bază de date pentru ansambluri pe 32 și 64 de biți.
Estimarea volumelor eșantionului pe intervale (estimare interogare interval).
Поддержка ключей вдвое большей длины и выбираемый пользователем размер страницы БД.
Утилита проверки целостности структуры БД с некоторыми возможностями восстановления.
Основные новшества и доработки после stiri anterioare с представлением версии 0.5 в январе 2020:
Для оперативной поддержки и ответов на вопросы создана открытая группа в Телеграм.
Оформлена встроенная документация в формате Doxygen и автоматическая генерация Online документации.
Обеспечено автоматическое формирование архивов с амальгамированными исходными текстами.
Добавлена поддержка подготовки транзакций и курсоров, пользовательских контекстов для транзакций и курсоров.
Реализованы дополнительные методы контроля ссылочной целостности в MVCC-снимках B+tree.
Добавлена поддержка проверки MVCC-снимка БД, доступного через любую мета-страницу с возможностью переключения для восстановления.
Реализована поддержка повторного открытия БД из одного процесса в целях тестирования и т.п.
Реализована автоматическая обработка опции MDBX_NOSUBDIR при открытии БД.
Добавлены функции формирования целочисленных ключей из значений плавающей точки и «универсальных» чисел JavaScript.
Суммарно внесено 430 изменений затронувших 93 файла, добавлено более 25 тысяч строк, более 8.5 тысяч строк удалено.
Последующая разработка libmdbx будет сосредоточена на формировании финального C++ API, дальнейшей стабилизации базового кода, повышению удобства использования библиотеки, а также формирования пакетов для популярных дистрибутивов Linux. Из предполагаемых доработок стоит отметить поддержку ключей в формате MessagePack.