libmdbx 0.13.7 sisseehitatud andmebaasi väljalaskmine

Avaldatud on libmdbx 0.13.7 (MDBX) teekonna väljaanne, mis sisaldab kõrge jõudlusega, kompaktset, sisseehitatud võtme-väärtuse andmebaasi. Libmdbx kood on levitatud Apache 2.0 litsentsi alusel. Toetatakse kõiki kaasaegseid operatsioonisüsteeme ja arhitektuure, sealhulgas Venemaa Elbrus 2000. Libmdbx pakub täiustatud API-d C++-le, samuti entusiastide poolt toetatud sidemeid Rusti, Haskell, Pythoni, NodeJS, Ruby, Go, Nim, Deno ja Scala keeltesse. Projektidest, mis kasutavad libmdbx-i, võib mainida Isarit, Erigoni ja Rethi, samuti StarkWare'i ja Positive Technologies'i arendusi.

Ajalooliselt on libmdbx sügav ümbertehtud LMDB andmebaasi haldustarkvara ja ületab oma eelkäijat usaldusväärsuse, funktsioonide komplekti ja jõudluse poolest. Erinevalt LMDB-st pööratakse libmdbxis suurt tähelepanu koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Koos on kaasas andmebaasi struktuuri terviklikkuse kontrollimise utiliit, mis võimaldab osalist taastamist. Tehniliselt pakub libmdbx ACID-koordineeritud, ranget muudatuste serialiseerimist ja mittesundivat lugemist koos lineaarse skaleerimisega CPU tuumade järgi. Toetatakse automaatset tihendamist, andmebaasi suuruse automaatset juhtimist, ning vahemike põhjalise päringu hindamist.

Peamised muudatused:

  • Kriitiline viga mdbx_env_resurrect_after_fork() funktsionaalsuses SysV-semaforode kasutamisel on kõrvaldatud. Viga ilmnes ainult siis, kui lasteprotsess loodi fork() abil sel ajal, kui käidi kirjutava tehinguga, mis viis semaforide vale toimimiseni ja seejärel väga erinevate vigade, sealhulgas andmebaasi kahjustumiseni. Probleem esines alates mdbx_env_resurrect_after_fork() tutvustamisest ning see puudutas macOS-i ja POSIX platvorme, kui koguti valikuga MDBX_LOCKING=5.
  • Probleem API andmebaasi kopeerimisel, mis ilmus mitte-Linuxi POSIX süsteemides (peamiselt macOS), on lahendatud, samuti teatavatel juhtudel, kui sihtfail asus mitte-lokaalses failisüsteemis. Probleem põhjustas veateate EWOULDBLOCK/EAGAIN, mis tulenes fcntl(F_SETLK) ja flock() lukustuste konfliktist OS tuumas. Andmebaasi kopeerimise API-s on täiustatud failide lukustamise vigade käitlemine POSIX süsteemides.
  • Parandatud tõrge, mis põhjustas MDBX_BAD_DBI ootamatu tagastamise, kui mitu tehingut käivitati sama protsessi sees pärast andmebaasi avamist.
  • Parandatud tõrge, mis põhjustas MDBX_DBS_FULL ootamatu tagastamise, kui avatakse uuesti juba avatud tabelid ja on saavutatud avatud DBI-deskriptorite limiit.
  • Androidi platvormile mõeldud kompileerimise viga on parandatud, kui _FILE_OFFSET_BITS on selgelt määratletud.
  • Parandatud ENOMEM-i kasutamine MDBX_ENOMEM-i asemel. See võis rikkuda kompileerimist mitte-POSIX/Windows platvormidel, sõltuvalt konfigureerimisest ja/või SDK versioonist.
  • Parandatud või eemaldatud mitmed vale assert-testimised, mis põhjustasid tõrkeid tõrkekogudes spetsiifilistes olukordades. Eeskätt funktsioonide txn_end(), txn_lock() ja txn_unlock() koodis nii Windowsis kui ka POSIX-il.
  • Eemaldatud ebaolulised MSVC hoiatused. Keelatud hoiatuste C5286 ja C5287 kuvamine.
  • Tähtsustatud OFD-lukustuse väära kasutuse loogika POSIX-platvormidel. Nüüd lisaks EINVAL-ile arvestatakse ka lisaveakoodide (ENOSYS, ENOIMPL, ENOTSUP, ENOSUPP, EOPNOTSUPP) olemasolu, mis võimaldab kogutud raamatukogul töötada mõnel juhul, kui käimasolev südamik/konteiner/emulaator ei toeta vajalikke süsteemi kutseid.
  • Testimise raamistikku on lisatud tugi valikule '—numa ' juhusliku testi sidumiseks NUMA-sõlmega. Battery/tmux skripti on lisatud selge jaotus NUMA-sõlmedele, mis suurendas testimise efektiivsust NUMA-masinate puhul.
  • Juhuslik testide käivitamise järjekord on ellu viidud juhuslikus skriptis.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster