Ang libmdbx 0.10.4 ay may kasamang iba't ibang mga pagpapabuti at pag-aayos ng bug

Ang paglabas ng bersyon 0.10.4 aklatan "Libmdbx" kung saan sa kabuuan, higit sa 160 mga pagbabago na ginawa sa 57 mga file, ~ 5000 mga linya naidagdag at ~ 2500 tinanggal. Para sa mga hindi pamilyar sa libmdbx, dapat mong malaman na ito ay isang hanay ng mga aklatan na isang pagpapatupad ng isang compact, mataas na pagganap na naka-embed na database ng key-halaga na klase.

Makasaysayang, libmdbx ay isang malalim na reworking ng LMDB DBMS at mas mahusay ang hinalinhan nito sa pagiging maaasahan, hanay ng tampok, at pagganap. Kung ikukumpara sa LMDB, ang libmdbx ay naglalagay ng maraming diin sa kalidad ng code, katatagan ng API, pagsubok, at mga awtomatikong pagsusuri. Ang isang utility upang mapatunayan ang integridad ng istraktura ng database ay ibinigay na may ilang mga pagpipilian sa pagbawi.

Teknolohikal, Ang libmdbx ay nag-aalok ng ACID, mahigpit na pagbabago ng serialization, at mga hindi nagbabagong pagbabasa na may linear scaling sa mga core ng CPU. Sinusuportahan ang awtomatikong pag-compaction, awtomatikong kontrol sa laki ng database, at pagtantya sa ranggo ng query. Mula noong 2016, ang mga proyekto ay pinondohan ng Positive Technologies at ginamit sa kanilang mga produkto mula noong 2017.

Para sa libmdbx, isang C ++ API ang inaalok, pati na rin ang mga bindings na katugma sa Rust, Haskell, Python, NodeJS, Ruby, Go, mga taong mahilig sa Nim. Para sa libfpta, ang paglalarawan lamang ng API sa anyo ng isang C / C ++ header file ang magagamit ng publiko.

Bilang karagdagan sa pagsuporta sa Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD at iba pang mga katugmang system POSIX.1-2008.

Pangunahing mga bagong tampok ng libmdbx 0.10.4

Sa bagong bersyon ng libmdbx 0.10.4 ang mga tagabuo ay nagtrabaho upang makapagbigay ng kakayahan para sa mga puwedeng laruin, Bilang karagdagan, napabuti ang pagsubok at ang mga script ng pagsubok ay pinalawig upang suriin ang lahat ng maaaring matamo na hindi pang-isomorphic na estado ng puno ng pahina at nilalaman ng GC sa loob ng database.

Sa C ++ API naayos nang isang beses na "noexcept", nagdagdag ng labis na labis na karga para sa pamamaraang "cursor :: burahin ()", ang pagpapatupad ng mga buffer ay hinalinhan sa pamamagitan ng paggamit ng "std :: string" upang matiyak ang pagkakahanay (kasalukuyang para sa CLANG libstdc ++)

Bilang karagdagan, naka-highlight din iyon ang isang phased verification ay natupad kasama ang pagdaragdag ng isang serye ng mga pagpapatunay upang matiyak ang katatagan sa kaganapan ng sinadya pinsala sa database.

Sa kabilang banda, naka-highlight na ang paghahanap para sa mga sangkap ng tagatala na kinakailangan para sa LTO (pag-optimize ng oras sa pag-link) ay napabuti sa mga script ng CMake, bilang karagdagan sa maximum na bilang ng mga kasabay na mambabasa ay nadagdagan sa 32.767 at mayroon ding pagganap napabuti kapag gumagamit ng Valgrind at AddressSanitizer.

Tungkol sa mga pag-aayos ng bug na ginawa sa bagong bersyon na ito, ang mga sumusunod ay nabanggit:

  • Naayos ang isang bug kung saan, sa napakabihirang mga pangyayari, isang loop / crash ay maaaring mangyari sa panahon ng paggawa ng isang transaksyon. Ang problema ay nakilala ng mga dalubhasa sa Positive Technologies sa panahon ng panloob na pagsubok ng kanilang sariling mga produkto.
  • Nakapirming pagbabalik sa maruming algorithm ng pag-spill ng pahina (pumipili na pagpapaalis ng binagong mga pahina ng database) na nagpapakita ng bihirang hindi inaasahang error ng MDBX_PROBLEM kapag binabago ang data sa malalaking mga transaksyon.
  • Naayos ang menor de edad na mga UndefinedBehaviourSanitizer at Coverity Scan na isyu.
    Naayos ang lipas at hindi nagamit na panloob na pag-flag ng tseke na "P_DIRTY" sa mga pahinang nakapugad sa loob ng mga imaheng database na nilikha ng mga lumang bersyon ng library.
  • Naayos na recursive na paggamit ng SRW-lock sa Windows kapag nagtatrabaho sa MDBX_NOTLS mode (nang hindi gumagamit ng lokal na imbakan ng thread), naayos na pagbuo ng bootid sa kaso ng pagbabago ng oras ng system, pinahusay na pagtuklas ng WSL1 at WSL2, idinagdag ang kakayahang buksan ang isang database ng Plan 9 na naka-mount gamit ang DrvFS.

Sa wakas kung interesado kang malaman ang tungkol dito tungkol sa bagong bersyon na ito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.