Uvoľnenie knižnice verzie 0.10.4 "Libmdbx" v ktorom celkovo, bolo vykonaných viac ako 160 zmien v 57 súboroch, bolo pridaných ~ 5000 2500 riadkov a ~ XNUMX XNUMX odstránených. Pre tých, ktorí nepoznajú libmdbx, by ste mali vedieť, že toto je sada knižníc, ktorá je implementáciou kompaktnej, vysoko výkonnej vstavanej databázy triedy kľúč-hodnota.
historicky, libmdbx je hlboké prepracovanie LMDB DBMS a spoľahlivosťou, sadou funkcií a výkonom prekonáva svojho predchodcu. V porovnaní s LMDB libmdbx kladie veľký dôraz na kvalitu kódu, stabilitu API, testovanie a automatické kontroly. Pomôcka na overenie integrity databázovej štruktúry je vybavená niektorými možnosťami obnovy.
Technologicky, libmdbx ponúka ACID, serializáciu prísnych zmien a neblokujúce čítanie s lineárnym škálovaním cez jadrá CPU. Podporuje automatické zhutnenie, automatické riadenie veľkosti databázy a odhad poradových dotazov. Od roku 2016 sú projekty financované spoločnosťou Positive Technologies a od roku 2017 ich používajú vo svojich produktoch.
Pre libmdbx, je ponúkané rozhranie C ++ API, ako aj väzby kompatibilné s nadšencami Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Pre libfpta je verejne dostupný iba popis rozhrania API vo forme hlavičkového súboru C / C ++.
Okrem podpory systémov Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD a ďalších kompatibilných systémov POSIX.1-2008.
Hlavné nové funkcie libmdbx 0.10.4
V tejto novej verzii libmdbx 0.10.4 vývojári pracovali na tom, aby boli schopní poskytnúť možnosť hrateľných verzií, Okrem toho bolo testovanie vylepšené a testovacie skripty boli rozšírené o kontrolu všetkých dosiahnuteľných neizomorfných stavov stromu stránok a obsahu GC v databáze.
V C ++ API opravenom raz „noexcept“, pridané ďalšie preťaženie pre metódu „cursor :: erase ()“, implementácia vyrovnávacích pamätí je uľahčená použitím "std :: string" na zaistenie zarovnania (aktuálne pre CLANG libstdc ++)
Okrem toho sa tiež zdôrazňuje, že bolo vykonané fázové overovanie s pridaním série overení zaistiť stabilitu v prípade úmyselného poškodenia databázy.
Na druhej strane sa zdôrazňuje, že v skriptoch CMake bolo vylepšené vyhľadávanie komponentov kompilátora potrebných pre LTO (optimalizácia času spojenia), okrem toho bol zvýšený maximálny počet simultánnych čítačiek na 32.767 XNUMX a tiež výkon. vylepšené pri použití programov Valgrind a AddressSanitizer.
Pokiaľ ide o opravy chýb , ktoré boli vyrobené v tejto novej verzii, sú uvedené tieto:
- Opravená chyba, pri ktorej vo veľmi zriedkavých prípadoch mohlo dôjsť k slučke / zlyhaniu počas vykonávania transakcie. Problém identifikovali špecialisti z Positive Technologies počas interného testovania vlastných produktov.
- Opravená regresia v algoritme rozliatia špinavých stránok (selektívne vysťahovanie upravených databázových stránok) prejavujúci sa zriedkavou neočakávanou chybou MDBX_PROBLEM pri zmene údajov vo veľkých transakciách.
- Opravené menšie problémy s nedefinovaným správaním správania a kontrolou pokrytia.
Opravené zastarané a nepoužité vnútorné kontroly vlajok „P_DIRTY“ na stránkach vnorených do databázových obrazov vytvorených staršími verziami knižnice. - Opravené rekurzívne používanie zámku SRW v systéme Windows pri práci v režime MDBX_NOTLS (bez použitia lokálneho úložiska vlákien), opravené generovanie bootidu v prípade zmeny systémového času, vylepšená detekcia WSL1 a WSL2, pridaná možnosť otvoriť databázu Plan 9 pripojenú pomocou DrvFS.
Konečne ak máte záujem dozvedieť sa o tom viac o tejto novej verzii, môžete skontrolovať podrobnosti Na nasledujúcom odkaze.