Lëshimi i DBMS-ve të integruara libmdbx 0.13.3

Botimi i bibliotekës libmdbx 0.13.3 (MDBX) me implementimin e një baze të dhënash të integruar, me performancë të lartë dhe kompakte, është publikuar. Kodi i libmdbx shpërndahet nën licencën Apache 2.0. Përkrah të gjitha sistemet operative dhe arkitekturën aktuale, si dhe Elbrus 2000 rus. Libmdbx ofron një API të avancuar për C++, si dhe lidhje të mbështetura nga entuziastët për gjuhët Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno dhe Scala.

Historikisht, libmdbx është një ripunim i thellë i DBMS LMDB dhe tejkalon paraardhësin e tij në besueshmëri, gamën e mundësive dhe performancën. Krahasuar me LMDB, libmdbx i kushton vëmendje të madhe cilësisë së kodit, qëndrueshmërisë së API, testimit dhe verifikimeve automatike. Ofron një mjet për verifikimin e integritetit të strukturës së DB me disa mundësi rikuperimi. Teknologjikisht, libmdbx ofron ACID, serializim të rreptë të ndryshimeve dhe lexim jo bllokues me shkallëzim linear sipas njësive CPU. Mbështetet auto-kompaktifikimi, menaxhimi automatik i madhësisë së DB, dhe vlerësimi i volumit të kërkesave në intervale (range query estimation).

Ndryshimet kryesore:

  • Dega 0.13.x mori statusin e qĂ«ndrueshĂ«m. Ka filluar zhvillimi i degĂ«s 0.14.x.
  • NĂ« API-nĂ« C Ă«shtĂ« shtuar funksioni mdbx_cursor_count_ex(), i cili lejon marrjen e numrit tĂ« shumĂ«-vlerave pĂ«rkatĂ«se me çelĂ«sin aktual, si dhe informacionin mbi pemĂ«n e brendshme qĂ« ruan kĂ«to vlera.
  • NĂ« API-nĂ« C++ Ă«shtĂ« shtuar metoda mdbx::txn::make_broken(), e ngjashme me mdbx_txn_break().
  • NĂ« mjetet mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat Ă«shtĂ« implementuar regjistrimi i gabimeve, paralajmĂ«rimeve dhe mesazheve tĂ« rĂ«ndĂ«sishme nga libmdbx.
  • Ndryshimi i sjelljes:
    • Kur aktivizohet profilizimi i mbledhĂ«sit tĂ« mbetjeve (mbledhje me opsionin MDBX_ENABLE_PROFGC=ON), tani llogariten kostot e kohĂ«s sĂ« CPU pĂ«r shkrirjen e listave tĂ« faqeve, dmth pĂ«r funksionin pnl_merge().
    • NĂ« mjetin e testimit, vlera e modit tĂ« tĂ« dhĂ«nave Ă«shtĂ« rinovuar nga data.dups nĂ« data.multi.
    • ËshtĂ« pĂ«rmirĂ«suar kontrolli i gjatĂ«sisĂ« sĂ« çelĂ«sit brenda cursor_seek().
    • NĂ«se pĂ«rdoruesi nuk caktuar vetĂ« njĂ« vlerĂ« pĂ«rmes mdbx_env_set_option(MDBX_opt_txn_dp_limit), ekzekutohet rregullimi i dirty-pages-limit me nisjen e çdo transaksioni shkruese tĂ« pa integruar, duke u bazuar nĂ« volumet e RAM tĂ« disponueshĂ«m dhe madhĂ«sinĂ« e DB.
    • NĂ« modin MDBX_NOSTICKYTHREADS, lejohet commit/abort i transaksioneve tĂ« integrate nga çdo thread/rrjedhĂ«.
    • Kur gjatĂ« pĂ«rpjekjes pĂ«r tĂ« nisur transaksione tĂ« ndĂ«rlidhura nĂ« mĂ«nyrĂ«n MDBX_WRITEMAP, regjistrohet njĂ« log dhe kthehet njĂ« gabim MDBX_INCOMPATIBLE.
    • NĂ« API-nĂ« C++, nĂ« konstruktoret/inicializuesit dhe metodat e lidhura me formimin e gjeometrisĂ« sĂ« DB-sĂ«, pĂ«rdoren pĂ«r default vetĂ«m vlerat standarde.
    • Brenda mdbx_env_set_geometry() janĂ« pĂ«rmirĂ«suar heuristikat pĂ«r pĂ«rcaktimin e parametrave tĂ« gjeometrisĂ« sĂ« DB-sĂ« qĂ« kĂ«rkohen nga pĂ«rdoruesi ‘pĂ«r default’.
  • Rregullime:
    • ËshtĂ« eliminuar regresi i mosçlirimit tĂ« mutex-it gjatĂ« pĂ«rpjekjes pĂ«r tĂ« mbyllur pĂ«rsĂ«ri dbi-deskriptorin, duke pĂ«rfshirĂ« pĂ«rpjekjen pĂ«r tĂ« mbyllur nĂ« mĂ«nyrĂ« eksplicite deskriptorin pas fshirjes sĂ« tabelĂ«s sĂ« lidhur me tĂ«.
    • ËshtĂ« eliminuar regresi i qĂ«ndrimit tĂ« kursorit tĂ« ndĂ«rlidhur/dupsort pas futjes sĂ« tĂ« dhĂ«nave nĂ« mĂ«nyrĂ«n MDBX_APPEND.
    • PĂ«rkrahja e marrjes sĂ« boot_id gjatĂ« punĂ«s brenda njĂ« kontejneri LXC.
    • ËshtĂ« eliminuar gabimi i pĂ«rpunimit tĂ« gabuar tĂ« pĂ«rpjekjes pĂ«r tĂ« nisur njĂ« transaksion lexues tĂ« ndĂ«rlidhur. Tani nĂ« situata tĂ« tilla kthehet njĂ« gabim MDBX_EINVAL, pasi ndĂ«rlidhja mbĂ«shtetet vetĂ«m pĂ«r transaksionet e leximit-shkrimit.
    • ËshtĂ« eliminuar regresi SIGSEGV i qasjes nĂ« adresĂ«n zero gjatĂ« punĂ«s nĂ« mĂ«nyrĂ«n e vetĂ«m-pĂ«r-lexim pa pĂ«rdorimin e skedarit LCK, pĂ«r shembull, kur vendosni DB-nĂ« nĂ« njĂ« mbajtĂ«s qĂ« Ă«shtĂ« vetĂ«m pĂ«r lexim.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster