Жоғары өнімді ендірілген ДҚБЖ libmdbx 0.11.3 шығарылымы

libmdbx 0.11.3 (MDBX) кітапханасы өнімділігі жоғары ықшам кірістірілген кілттер-мәні дерекқорын іске асырумен бірге шығарылды. libmdbx коды OpenLDAP Public License бойынша лицензияланған. Барлық ағымдағы операциялық жүйелер мен архитектураларға, сондай-ақ ресейлік Elbrus 2000 нұсқасына қолдау көрсетіледі. 2021 жылдың соңында libmdbx екі ең жылдам Ethereum клиентінде сақтау сервері ретінде пайдаланылады - Erigon және жаңа «Shark», олар қол жетімді деректерге сәйкес. ақпарат, ең жоғары өнімді Ethereum клиенті болып табылады.

Тарихи тұрғыдан алғанда, libmdbx LMDB ДҚБЖ терең қайта өңдеу болып табылады және сенімділік, мүмкіндіктер жиынтығы және өнімділік бойынша оның ата-бабасынан жоғары. LMDB-мен салыстырғанда, libmdbx код сапасына, API тұрақтылығына, тестілеуге және автоматтандырылған тексерулерге көп көңіл бөледі. Кейбір қалпына келтіру мүмкіндіктері бар дерекқор құрылымының тұтастығын тексеруге арналған қызметтік бағдарлама жеткізіледі.

Технология тұрғысынан libmdbx ACID, күшті өзгерістер сериялауын және процессор өзектері бойынша сызықтық масштабтау арқылы блокталмаған оқуларды ұсынады. Автоматты ықшамдауға, дерекқор өлшемін автоматты басқаруға және ауқымды сұрауды бағалауға қолдау көрсетіледі. 2016 жылдан бастап жобаны Positive Technologies қаржыландырып, 2017 жылдан бастап өз өнімдерінде қолданылуда.

libmdbx C++ API интерфейсін, сондай-ақ Rust, Haskell, Python, NodeJS, Ruby, Go және Nim үшін энтузиастар қолдайтын тіл байлауларын ұсынады.

11 қазандағы алдыңғы жаңалықтардан кейін қосылған негізгі инновациялар, жақсартулар мен түзетулер:

  • C++ API пайдалануға дайын болып саналады.
  • Үлкен транзакцияларды жасау кезінде GC деректерін жаңарту айтарлықтай жеделдетілді, бұл әсіресе Ethereum экожүйесінде libmdbx пайдалану кезінде маңызды.
  • Дерекқор пішімінің ішкі қолтаңбасы пайдаланушылар үшін толығымен ашық болып табылатын автоматты жаңартуды қолдау үшін өзгертілді. Бұл кітапхананың ескірген нұсқалары ағымдағы нұсқалармен жазылған транзакцияларды оқу үшін пайдаланылған кезде дерекқордың бүлінуі туралы жалған-оң хабарламаларды жоюға мүмкіндік береді.
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() және mdbx_env_get_syncbytes() функциялары қосылды. MDBX_SET_UPPERBOUND әрекетіне қолдау қосылды.
  • C++ 11/14/17/20 режимдерінде барлық қолдау көрсетілетін компиляторлармен құрастыру кезіндегі барлық ескертулер жойылды. Бұрынғы компиляторлармен үйлесімділік қамтамасыз етілген: CentOS/RHEL 3.9 үшін cdevtoolset-4.8 көмегімен құрастыруды қоса алғанда, 9-дан бастап clang, 7-ден бастап gcc.
  • mdbx_chk утилитасын пайдаланып белгілі бір мета-бетке қолмен ауысқаннан кейін мета-бет қақтығыстарының мүмкіндігі түзетілді.
  • Бұрынғы мета беттерді қайта жазу кезінде қайтарылатын күтпеген MDBX_PROBLEM қатесі түзетілді.
  • MDBX_GET_BOTH сұрауын өңдеу кезінде дәл сәйкестік болмаған жағдайда MDBX_NOTFOUND қайтару түзетілді.
  • Linux жүйесінде ядромен интерфейстердің сипаттамасы бар тақырып файлдарының болмауына байланысты компиляция қатесі түзетілді.
  • MDBX_SHRINK_ALLOWED ішкі жалауы мен MDBX_ACCEDE опциясы арасындағы қайшылық түзетілді.
  • Бірнеше қажетсіз растау тексерулері жойылды.
  • mdbx_env_set_option() функциясынан MDBX_RESULT_TRUE мәнін күтпеген қайтару түзетілді.
  • Барлығы 90 файлға 25-нан астам өзгертулер енгізілді, ~1300 жол қосылды, ~600 жойылды.

Ақпарат көзі: opennet.ru

пікір қалдыру