Чыгарылды версия 0.9.1 библиотеки libmdbx (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Коомдук Лицензиясы.
Текущая версия является компромиссом между намерением выпустить долговременную стабильную версию 1.0 с полноценной поддержкой C++ и нежеланием откладывать релизы из-за неготовности к заморозке нового C++ API. Представленный релиз является результатом 9 месяцев работы направленной на стабилизацию библиотеки и повышения удобства её использования, а также включает предварительную версию C++ API.
Библиотека libmdbx является не просто «форком», а кардинально переработанным потомком LMDB — негизделген «ачкыч-маани» классынын транзакциялык камтылган МБС дарак B+ жок проактивдүү каттоо, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД без выделенного серверного процесса. Libmdbx принципиально бейм возможности своего прародителя, одновременно устраняя, либо смягчая недостатки. При этом, по убеждению разработчиков, libmdbx немного быстрее и существенно надежнее LMDB.
libmdbx предлагает КЫЧКЫЛ, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам CPU. Результаты тестирования производительности (отправка параллельных запросов на чтение/поиск в 1-2-4-8 потоках на CPU i7-4600U c 2-я физическими ядрами в режиме 4-х потоков HyperThread):
MDBX жана LMDB ортосундагы маанилүү айырмачылыктар:
Принципиально больше внимания уделяется качеству кода, «непадучести» API, тестированию и автоматическим проверкам.
Параметрлерди текшерүүдөн тартып маалымат базасынын структураларынын ички аудитине чейин иштөө учурунда кыйла көбүрөөк контроль.
Автоматтык компактификация жана маалымат базасынын өлчөмүн автоматтык түрдө башкаруу.
32 биттик жана 64 биттик жыйындар үчүн бирдиктүү маалымат базасынын форматы.
Диапазондор боюнча үлгү көлөмүн баалоо (диапазон сурамдарын баалоо).
Поддержка ключей вдвое большей длины и выбираемый пользователем размер страницы БД.
Утилита проверки целостности структуры БД с некоторыми возможностями восстановления.
Основные новшества и доработки после предыдущей новости с представлением версии 0.5 в январе 2020:
Для оперативной поддержки и ответов на вопросы создана открытая группа в Телеграм.
Устранено более десятка ошибок и недочетов (см. өзгөртүү журналы).
Исправлена масса опечаток и орфографических ошибок, множественные косметические улучшения.
Оформлена встроенная документация в формате Doxygen и автоматическая генерация Online документации.
Обеспечено автоматическое формирование архивов с амальгамированными исходными текстами.
Добавлена поддержка подготовки транзакций и курсоров, пользовательских контекстов для транзакций и курсоров.
Реализованы дополнительные методы контроля ссылочной целостности в MVCC-снимках B+tree.
Добавлена поддержка проверки MVCC-снимка БД, доступного через любую мета-страницу с возможностью переключения для восстановления.
Реализована поддержка повторного открытия БД из одного процесса в целях тестирования и т.п.
Реализована автоматическая обработка опции MDBX_NOSUBDIR при открытии БД.
Добавлены функции формирования целочисленных ключей из значений плавающей точки и «универсальных» чисел JavaScript.
Суммарно внесено 430 изменений затронувших 93 файла, добавлено более 25 тысяч строк, более 8.5 тысяч строк удалено.
Последующая разработка libmdbx будет сосредоточена на формировании финального C++ API, дальнейшей стабилизации базового кода, повышению удобства использования библиотеки, а также формирования пакетов для популярных дистрибутивов Linux. Из предполагаемых доработок стоит отметить поддержку ключей в формате MessagePack.