Didelio našumo įterptosios DBVS libmdbx 0.11.3 išleidimas

Libmdbx 0.11.3 (MDBX) biblioteka buvo išleista įdiegus didelio našumo kompaktišką įterptąją raktų verčių duomenų bazę. Libmdbx kodas yra licencijuotas pagal OpenLDAP viešąją licenciją. Palaikomos visos dabartinės operacinės sistemos ir architektūros, taip pat rusiška Elbrus 2000. 2021 m. pabaigoje libmdbx buvo naudojamas kaip saugyklos užpakalinė programa dviejuose greičiausiuose „Ethereum“ klientuose – Erigon ir naujajame „Shark“, kuris, remiantis turimais informacija, yra didžiausio našumo Ethereum klientas.

Istoriškai libmdbx yra gilus LMDB DBVS perdirbimas ir pranašesnis už savo pirmtaką savo patikimumu, funkcijų rinkiniu ir našumu. Palyginti su LMDB, libmdbx daug dėmesio skiria kodo kokybei, API stabilumui, testavimui ir automatiniams patikrinimams. Pateikiama duomenų bazės struktūros vientisumo tikrinimo programa su tam tikromis atkūrimo galimybėmis.

Technologiškai libmdbx siūlo ACID, stiprią pakeitimų serializaciją ir neblokuojančius skaitymus su tiesiniu mastelio keitimu procesoriaus branduoliuose. Palaikomas automatinis suglaudinimas, automatinis duomenų bazės dydžio valdymas ir diapazono užklausos įvertinimas. Nuo 2016 m. projektą finansuoja „Positive Technologies“ ir nuo 2017 m.

libmdbx siūlo C++ API, taip pat entuziastų palaikomus Rust, Haskell, Python, NodeJS, Ruby, Go ir Nim kalbų įrišimus.

Pagrindinės naujovės, patobulinimai ir pataisymai, pridėti nuo ankstesnių naujienų spalio 11 d.:

  • C++ API laikoma paruošta naudoti.
  • GC duomenų atnaujinimas atliekant didžiulius sandorius buvo žymiai paspartintas, o tai ypač svarbu naudojant libmdbx Ethereum ekosistemoje.
  • Duomenų bazės formato vidinis parašas buvo pakeistas, kad būtų palaikomas automatinis atnaujinimas, kuris vartotojams yra visiškai skaidrus. Tai leidžia pašalinti klaidingai teigiamus pranešimus apie duomenų bazės sugadinimą, kai pasenusios bibliotekos versijos naudojamos dabartinių versijų įrašytoms operacijoms skaityti.
  • Pridėtos funkcijos mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ir mdbx_env_get_syncbytes(). Pridėtas MDBX_SET_UPPERBOUND operacijos palaikymas.
  • Visi įspėjimai kuriant su visais palaikomais kompiliatoriais C++ 11/14/17/20 režimais buvo pašalinti. Suderinamumas su senais kompiliatoriais užtikrinamas: skambėjimas nuo 3.9, gcc nuo 4.8, įskaitant surinkimą naudojant cdevtoolset-9, skirtą CentOS/RHEL 7.
  • Ištaisyta metapuslapio konflikto galimybė rankiniu būdu perėjus į konkretų meta puslapį naudojant mdbx_chk įrankį.
  • Ištaisyta netikėta MDBX_PROBLEM klaida, kuri grąžinama perrašant senus meta puslapius.
  • Ištaisytas MDBX_NOTFOUND grąžinimas, jei apdorojant MDBX_GET_BOTH užklausą būtų netiksli atitiktis.
  • Ištaisyta kompiliavimo klaida sistemoje „Linux“, nes nėra antraštės failų su sąsajų su branduoliu aprašymais.
  • Ištaisytas konfliktas tarp MDBX_SHRINK_ALLOWED vidinės vėliavėlės ir MDBX_ACCEDE parinkties.
  • Buvo pašalintos kelios nereikalingos tvirtinimo patikros.
  • Ištaisytas netikėtas MDBX_RESULT_TRUE grąžinimas iš funkcijos mdbx_env_set_option().
  • Iš viso 90 failuose atlikta daugiau nei 25 pakeitimų, pridėta ~1300 eilučių, ištrinta ~600.

Šaltinis: opennet.ru

Добавить комментарий