Издание на вградена СУБД 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, но по-късно репозиториът беше възстановен с пояснението, че това е направено по искане на разработчици от Китай и Бразилия, както и от платформата Tempo, която използва libmdbx.

Основни изменения след предишната новина от 1 август:

  • Възстановена е поддръжката на стари ядра на Linux, започвайки от версия 3.16.
  • Осигурена е поддръжка на мобилната операционна система Harmony.
  • Грешката «MDBX_WANNA_RECOVERY» при отваряне на БД в режим само за четене сега се връща, ако размерът на БД не е кратен на размера на системната страница, но се игнорира некратността на размера на блока за заделяне на виртуална памет.
  • Премахната е възможността за получаване на неочакван «SIGBUS» поради отложено/лениво заделяне от ядрото на ОС на място в запълнена файлова система след увеличаване на файла на БД.
  • Поправена е проверката assert в пътя за сканиране на битовата карта на DBI-дескрипторите, което водеше до редки сривове на 32-битни отладъчни версии.
  • За Android е реализиран маневър, който намалява вероятността от системна грешка 'EAGAIN', възникваща поради недостиг на системни ресурси и преходни процеси при затваряне и бързо повторно отваряне на БД.
  • За Linux е добавено предотвратяване на проявата на грешка в реализацията на fast_commit файловата система Ext4.
  • Поправен е недостатъкът в автоматичната настройка на параметрите при инсталация на геометрия с зададен минимален размер на страницата, поради който на машини с голямо количество RAM размерът на страницата можеше да се увеличи.
  • Преработена е реализацията на буферите и са направени други подобрения в C++ API.

Допълнително е важно да се отбележи анонса на доклада 'libmdbx: Дорожна карта, успехи, цели и препятствия' на събитието Ethereum Day, което ще се проведе на 23 декември в Москва.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster