Lëshimi i libmdbx 0.13.7

ËshtĂ« publikuar lĂ«shimi i libmdbx 0.13.7 (MDBX) me implementimin e njĂ« baze tĂ« dhĂ«nash tĂ« integruar tĂ« lartĂ« qĂ« funksionon si çelĂ«s-vlerĂ«. Kodi i libmdbx shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0. MbĂ«shteten tĂ« gjitha sistemet operative dhe arkitekturat aktuale, si dhe Elbrusi rus 2000. Libmdbx ofron njĂ« API tĂ« 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. NdĂ«r projektet qĂ« pĂ«rdorin libmdbx, mund tĂ« pĂ«rmendim Isar, Erigon dhe Reth, si dhe zhvillimet e kompanive StarkWare dhe Positive Technologies.

Historikisht, libmdbx është një ripunim i thellë i bazës së të dhënave LMDB dhe e tejkalon paraardhësin e saj në besueshmëri, funksionalitete dhe performancë. Krahasuar me LMDB, në libmdbx i është kushtuar shumë vëmendje cilësisë së kodit, qëndrueshmërisë së API, testimit dhe kontrolleve automatike. Sigurohet një mjet për të verifikuar integritetin e strukturës së bazës së të dhënave me disa mundësi rikuperimi. Teknologjikisht, libmdbx ofron ACID, serilizim të rreptë të ndryshimeve dhe lexim të pakonkurrueshëm me shkallëzim linear sipas bërthamave të CPU. Mbështetet kompaktimi automatik, menaxhimi automatik i madhësisë së bazës së të dhënave, dhe vlerësimi i shumësive të zgjedhura sipas intervaleve (range query estimation).

Ndryshimet kryesore:

  • Kishte eliminuar njĂ« gabim tĂ« rĂ«ndĂ«sishĂ«m nĂ« funksionalitetin mdbx_env_resurrect_after_fork() gjatĂ« pĂ«rdorimit tĂ« semaforĂ«ve SysV. Gabimi shfaqej vetĂ«m pas krijimit tĂ« njĂ« procesi fĂ«mijĂ« pĂ«rmes fork() gjatĂ« njĂ« transaksioni shkruese tĂ« ekzekutuar, duke çuar nĂ« njĂ« funksionim tĂ« gabuar tĂ« semaforĂ«ve dhe mĂ« pas nĂ« gabime tĂ« ndryshme, pĂ«rfunduar nĂ« dĂ«mtimin e bazĂ«s sĂ« tĂ« dhĂ«nave. Problemi ka ekzistuar qĂ« nga shfaqja e mdbx_env_resurrect_after_fork() dhe kishte prekur macOS, si dhe platforma POSIX kur ishte ndĂ«rtuar me opsionin MDBX_LOCKING=5.
  • Kishte eliminuar njĂ« problem nĂ« API-nĂ« e kopjimit tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave, qĂ« shfaqej nĂ« sisteme POSIX ndryshe nga Linux (pĂ«r shumicĂ«n nĂ« macOS), si dhe nĂ« disa raste kur skedari i targetit ishte nĂ« njĂ« sistem skedari jo-lokal. Problemi çonte nĂ« kthimin e gabimit EWOULDBLOCK/EAGAIN, i cili rezultonte nga njĂ« mosfunksionim/kontaktim i bllokimeve fcntl(F_SETLK) dhe flock() nĂ« kernin e OS. Kishte pĂ«rmirĂ«suar trajtimin e gabimeve tĂ« kapjes sĂ« bllokimeve tĂ« skedarĂ«ve nĂ« API-nĂ« e kopjimit nĂ« sistemet POSIX.
  • Korrigjua njĂ« gabim qĂ« shkaktonte kthimin e papritur MDBX_BAD_DBI kur filloheshin disa transaksione brenda njĂ« procesi pas hapjes sĂ« BD-sĂ«.
  • Korrigjua njĂ« gabim qĂ« shkaktonte kthimin e papritur MDBX_DBS_FULL kur rihapeshin tabela tĂ« hapura tashmĂ« dhe ishte arritur kufiri i descriptorĂ«ve tĂ« hapur DBI.
  • Korrigjua njĂ« gabim ndĂ«rtimi pĂ«r platformĂ«n Android kur Ă«shtĂ« e shprehur qartĂ« _FILE_OFFSET_BITS.
  • Korrigjua pĂ«rdorimi i ENOMEM nĂ« vend tĂ« MDBX_ENOMEM, i cili mund tĂ« shkaktonte probleme nĂ« ndĂ«rtim nĂ« platformat jo-POSIX/Windows, nĂ« varĂ«si tĂ« konfigurimit dhe/ose versionit tĂ« SDK.
  • NgritĂ«m ose fshimĂ« disa kontrolle tĂ« gabuara, tĂ« cilat shkaktonin dĂ«shtime nĂ« ndĂ«rtimet e pĂ«rjashtuara nĂ« situata specifike. Kryesisht, nĂ« kodin e funksioneve txn_end(), txn_lock() dhe txn_unlock() nĂ« Windows dhe POSIX.
  • Korrigjohen paralajmĂ«rime tĂ« parĂ«ndĂ«sishme MSVC. Çaktivizohen paralajmĂ«rimet C5286 dhe C5287.
  • Rivendoset logjika e heqjes sĂ« bllokimeve OFD nĂ« platformat POSIX. Tani pĂ«rveç EINVAL, merret parasysh edhe kodet e tjera tĂ« gabimeve (ENOSYS, ENOIMPL, ENOTSUP, ENOSUPP, EOPNOTSUPP), qĂ« do tĂ« lejojĂ« qĂ« biblioteka e ndĂ«rtuar tĂ« funksionojĂ« nĂ« disa raste, kur bĂ«rthama/kontejneri/emulatori aktual nuk mbĂ«shtet thirrjet e kĂ«rkuara sistemike.
  • NĂ« kornizĂ«n testuese Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r opsionin «—numa » pĂ«r lidhjen e testit stohastik me nyjĂ«n NUMA. NĂ« skenarin battery/tmux Ă«shtĂ« shtuar shpĂ«rndarje e qartĂ« nĂ« nyjat NUMA, qĂ« ka rritur ndjeshĂ«m efikasitetin e testimit nĂ« makinat NUMA.
  • NĂ« skenarin stohastik Ă«shtĂ« zbatuar njĂ« renditje e rastĂ«sishme pĂ«r nisjen e testeve tĂ« veçanta.

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