Пуск на компактната вградена СУБД libmdbx 0.9.1

Пуснато версия 0.9.1 на библиотеката libmdbx (MDBX) с реализация на високопроизводителна, компактна вградена база данни от клас ключ-стойност. Кодът на libmdbx се разпространява под лицензията OpenLDAP Public License.

Текущата версия е компромис между намерението да бъде пусната дългосрочна стабилна версия 1.0 с пълна поддръжка на C++ и нежеланието да се забавят релийзите поради некоректност при замразяване на новия C++ API. Представеният релийз е резултат от 9 месеца работа, насочена към стабилизиране на библиотеката и повишаване на удобството за използване, и включва предварителна версия C++ API.

Библиотеката libmdbx не е просто 'форк', а коренно преработен потомък на LMDB — транзакционна вградена СУБД от клас 'ключ-стойност', основана на B+ дърво без предварителна журнализация, което позволява на многопоточните процеси да работят конкурентно и ефективно с локално споделена (не мрежова) база данни без необходимост от отделен сървърен процес. Libmdbx принципно разширява възможностите на своя предшественик, едновременно премахвайки или смекчавайки недостатъците. По убеждението на разработчиците, libmdbx е малко по-бърз и съществено по-надежден от LMDB.

libmdbx предлага ACID, строга сериализация на промените и неблокирано четене с линейно мащабиране по ядра на CPU. Резултатите от тестването на производителността (изпращане на паралелни заявки за четене/търсене в 1-2-4-8 потока на CPU i7-4600U с 2 физически ядра в режим на 4 потока HyperThread):

Пуск на компактната вградена СУБД libmdbx 0.9.1

Най-важните отличия на MDBX спрямо LMDB:

  • Принципно повече внимание се отделя на качеството на кода, 'непадателността' на API, тестването и автоматичните проверки.
  • Съществено повече контрол по време на работа, от проверка на параметрите до вътрешен одит на структурите на базата данни.
  • Авто-компактиране и автоматично управление на размера на базата данни.
  • Единен формат на базата данни за 32-битови и 64-битови версии.
  • Оценка на обема на проби по диапазони (range query estimation).
  • Поддръжка на ключове с двойна дължина и избираем от потребителя размер на страницата на базата данни.
  • Утилита за проверка на целостта на структурата на базата данни с определени възможности за възстановяване.

Основни нововъведения и подобрения след предишната новина с представяне на версия 0.5 през януари 2020:

  • За бърза поддръжка и отговори на въпроси е създадена отворена група в Телеграм.
  • Над 10 грешки и пропуски са отстранени (вж. журнал на промените).
  • Коригирани са много печатни и правописни грешки, множество козметични подобрения.
  • Разширени са тестовите сценарии.
  • Реализирана е поддръжка за iOS, Android, buildroot, Musl, uClibc, WSL1 и Wine.
  • Представена е предварителна версия на C++ API в един заглавен файл.
  • Оформена е вградена документация във формат Doxygen и автоматична генерация на онлайн документация.
  • Обезпечено е автоматичното формирование на архиви със смесени изходни текстове.
  • Добавена е поддръжка за подготовка на транзакции и курсори, потребителски контексти за транзакции и курсори.
  • Реализирани са допълнителни методи за контрол на референтната цялост в MVCC-снимки B+tree.
  • Добавена е поддръжка за проверка на MVCC-снимка на БД, налична през всяка мета-страница с възможност за превключване за възстановяване.
  • Реализирана е поддръжка за повторно отваряне на БД от един процес с цел тестване и т.н.
  • Реализирана е автоматична обработка на опцията MDBX_NOSUBDIR при отваряне на БД.
  • Добавени са функции за генериране на цели числови ключове от стойности с плаваща запетая и "универсални" числа JavaScript.
  • Общо са направени 430 промени, засегнали 93 файла, добавени са над 25 хиляди реда, над 8.5 хиляди реда са изтрити.

По-нататъшното развитие на libmdbx ще бъде фокусирано върху формирането на финалното C++ API, допълнителна стабилизация на основния код, повишаване на удобството при използване на библиотеката, както и формиране на пакети за популярни дистрибуции на Linux. От предполагаемите доработки следва да се отбележи поддръжка на ключове във формат MessagePack.

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

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