Publikimi i DB-së të integruar libmdbx 0.13

ËshtĂ« publikuar lĂ«shimi i bibliotekĂ«s libmdbx 0.13.1 (MDBX) me implementimin e njĂ« baze tĂ« dhĂ«nash tĂ« integruar, kompakte dhe me performancĂ« tĂ« lartĂ« nga klasa çelĂ«s-vlerĂ«. Kodi i libmdbx shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0. MbĂ«shteten tĂ« gjitha sistemet operative dhe arkitekturave aktuale, si dhe Elbrusi 2000 i RusisĂ«. PĂ«r libmdbx ofrohet njĂ« API e zhvilluar pĂ«r C++, si dhe lidhje tĂ« mbĂ«shtetura nga entuziastĂ«t pĂ«r gjuhĂ«t Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, 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:

  • Ndryshimi i licencĂ«s sĂ« kodit nga OpenLDAP Public License nĂ« Apache 2.0.
  • Zgjerimi i API-ve tĂ« kursorĂ«ve me operacione mĂ« tĂ« pĂ«rshtatshme dhe tĂ« dukshme pĂ«r pozicionimin nĂ« pĂ«rputhje me kushtet <, =, > si pĂ«r çelĂ«sat ashtu edhe pĂ«r çiftet çelĂ«s-vlerĂ«. JanĂ« shtuar funksionet mdbx_cursor_unbind(), dhe mdbx_txn_release_all_cursors() pĂ«r menaxhimin e fleksibĂ«l tĂ« kursoreve nĂ« skenarĂ« tĂ« riciklimit pĂ«r tĂ« reduktuar shpenzimet. Funksionet mdbx_cursor_scan() dhe mdbx_cursor_scan_from() pĂ«r skanimin e tabelave duke pĂ«rdorur predikatin funksional dhe pĂ«r tĂ« reduktuar shpenzimet pĂ«rkatĂ«se.
  • Riorganizimi i kursoreve pĂ«r unifikimin e sjelljes, kod mĂ« tĂ« rregullt, dhe reduktimin e numrit tĂ« degĂ«zimeve dhe operacioneve makinerike.
  • Transferimi i funksionalitetit tĂ« utilites mdbx_chk brenda bibliotekĂ«s si funksion mdbx_env_chk() pĂ«r tĂ« kontrolluar integritetin e strukturĂ«s sĂ« DB, duke pĂ«rfshirĂ« logjikĂ«n e aplikacionit.
  • Opsioni MDBX_opt_gc_time_limit pĂ«r kontroll mĂ« fleksibĂ«l tĂ« kohĂ«s sĂ« shpenzuar nĂ« kĂ«rkimin e sekuencave tĂ« fqinjĂ«ve tĂ« lirĂ« nĂ« GC.
  • RĂ«nia e ndjeshme e shpenzimeve nĂ« fillimin e transaksioneve nĂ« skenarĂ« me njĂ« numĂ«r tĂ« madh tĂ« DBI-handeve, pĂ«r shkak tĂ« inicializimit tĂ« vonuar/pĂ«rngjitur tĂ« elementeve tĂ« tabelave ndihmĂ«se. PĂ«rfshirĂ«, mekanizmi i mbĂ«shtetjes pĂ«r grupe tĂ« rralla tĂ« DBI-handeve, i menaxhuar nga opsioni i ndĂ«rtimit MDBX_ENABLE_DBI_SPARSE, i cili Ă«shtĂ« aktivizuar si parazgjedhje.
  • Reduktimi i shpenzimeve pĂ«r hapjen e DBI-handeve. PĂ«rfshirĂ«, mekanizmi i çlirimit tĂ« vonuar dhe mbĂ«shtetjes pĂ«r rrugĂ«n e shpejtĂ« tĂ« hapjes pa pĂ«rdorur bllokimet, i menaxhuar nga opsioni i ndĂ«rtimit MDBX_ENABLE_DBI_LOCKFREE, i cili Ă«shtĂ« aktivizuar si parazgjedhje.
  • MbĂ«shtetje pĂ«r "parkimin" e transaksioneve lexuese me shtyrjen e tyre pĂ«r ripĂ«rpunimin e snapshot-Ă«ve tĂ« vjetra MVCC dhe parandalimin e problemeve tĂ« shkaktuara nga pezullimi i ripĂ«rpunimit tĂ« mbeturinave. Mekanizmi i parkimit dhe shtyrjes sĂ« transaksioneve tĂ« parkura Ă«shtĂ« njĂ« plotĂ«sim, por gjithashtu njĂ« alternativĂ« mĂ« e thjeshtĂ« pĂ«r thirrjen e Handle-Slow-Readers. PĂ«r lehtĂ«si, funksionet mdbx_txn_park() dhe mdbx_txn_unpark() kanĂ« argumente shtesĂ« qĂ« lejojnĂ« kĂ«rkesĂ«n pĂ«r "shkarkimin" automatik tĂ« transaksioneve tĂ« parkura dhe rinisjen e atyre tĂ« shtyra. NĂ« utilitarin mdbx_copy janĂ« shtuar opsionet pĂ«rkatĂ«se -d dhe -p.
  • MbĂ«shtetje pĂ«r rikthimin e mjedisit tĂ« hapur tĂ« punĂ«s me DB nĂ« njĂ« proces fĂ«mijĂ« pas ndarjes/çarjes sĂ« procesit pĂ«rmes mdbx_env_resurrect_after_fork().
  • MbĂ«shtetje pĂ«r rinaming-un e tabelave pĂ«rmes mdbx_dbi_rename() dhe mdbx_dbi_rename2(). ËshtĂ« shtuar funksioni mdbx_enumerate_tables() pĂ«r tĂ« marrĂ« informacion rreth tabelave tĂ« emĂ«ruara nga pĂ«rdoruesi.
  • Rejimi i funksionit MDBX_NOSTICKYTHREADS nĂ« vend tĂ« MDBX_NOTLS pĂ«r tĂ« thjeshtuar integrimin me thread-e tĂ« lehta, duke i multiplexuar ata me transaksionet nga sistemi operativ.
  • PĂ«r identifikimin e DB-sĂ« Ă«shtĂ« shtuar UUID e disponueshme nĂ« fushĂ«n mi_dxbid tĂ« strukturĂ«s MDBX_envinfo, e cila merret pĂ«rmes mdbx_env_info_ex(). ËshtĂ« realizuar marrja e informacionit pĂ«r DB-nĂ« pa e hapur atĂ« pĂ«rmes mdbx_preopen_snapinfo().
  • MbĂ«shtetje pĂ«r funksionet e regjistrimit tĂ« thirrjeve pa funksionalitetin vprintf(), which significantly simplifies the use of logging in bindings to other programming languages.
  • Shtimi nĂ« API tĂ« funksioneve mdbx_txn_copy2pathname() dhe mdbx_txn_copy2fd().
  • Ristrukturimi i kodit burimor me refaktorizim.
  • PĂ«rdorimi i termit "tabelĂ«" nĂ« vend tĂ« "subDb".
  • Shpallja e opsioneve MDBX_COALESCE dhe MDBX_NOTLS si tĂ« papĂ«rshtatshme. ZĂ«vendĂ«simi i opsionit tĂ« ndĂ«rtimit MDBX_USE_VALGRIND me opsionin e pranuar ENABLE_MEMCHECK.

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