Выпуск встраиваемой СУБД libmdbx 0.13.10

Опубликован выпуск библиотеки 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.

Дополнительно стоит отметить анонс доклада «libmdbx: Roadmap, успехи, цели и препятствия» на мероприятии Ethereum Day, которое состоится 23 декабря в Москве.

Источник: http://www.opennet.ru/opennews/art.shtml? num=64441

OpenNet прочитано 1851 раз