Дата публикации:Thu, 18 Dec 2025 07:46:20 +0300
Опубликован выпуск библиотеки libmdbx 0.13.10 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Apache 2.0. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. Для libmdbx предлагается развитое API для C++, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Из проектов, использующих libmdbx, можно отметить Isar, Erigon и Reth, а также разработки компаний StarkWare и Positive Technologies.
Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности. В сравнении с LMDB, в libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. Технологически libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам ЦПУ. Поддерживается автоуплотнение, автоматическое управление размером БД, оценка объёма выборок по диапазонам (range query estimation).
В декабре 2025 года основной репозиторий проекта был перенесён с GitFlic на SourceCraft. В качестве причины указываются жалобы не-русскоязычных пользователей и ошибки в редакторе Markdown, не устранённые в течение более трёх лет. Также сообщалось о закрытии зеркала проекта на Github, но позже репозиторий был восстановлен с пояснением, что это сделано по просьбам разработчиков из Китая и Бразилии, а также использующей libmdbx платформы Tempo.
Основные изменения после предыдущей новости от 1 августа:
- Возвращена поддержка старых ядрах Linux, начиная с версии 3.16. Обеспечена поддержка мобильной операционной системы Harmony. Ошибка "MDBX_WANNA_RECOVERY" при открытии БД в режиме только-чтение теперь возвращается если размер БД не кратен размеру системной страницы, но игнорируется не кратность размеру блока выделения виртуальной памяти. Устранена возможность получения неожиданного "SIGBUS" из-за отложенного/ленивого выделение ядром ОС места в заполненной файловой системе после приращения файла БД. Исправлена assert-проверка в пути сканирования битовой карты DBI-дескрипторов приводившая к редким падениям 32-битных отладочных сборок. Для Android реализован манёвр, уменьшающий вероятность системной ошибки "EAGAIN", возникающей из-за нехватки системных ресурсов и переходных процессов при закрытии и быстром повторном открытии БД. Для Linux добавлено предотвращение проявления ошибки в реализации fast_commit файловой системы Ext4. Исправлен недочёт автоподстройки параметров при установке геометрии с заданным минимальным размером страницы, из-за которого на машинах с большим количеством ОЗУ размер страницы мог увеличиваться. Переработана реализация буферов и внесены другие доработки в C++ API.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64441