Ilmus vĂ€lja libmdbx 0.13.2 (MDBX) teek, mis rakendab kĂ”rge jĂ”udlusega kompaktset sisseehitatavat vĂ”tme-vÀÀrtus andmebaasi. libmdbx kood on levitatav Apache 2.0 litsentsi alusel. Toetatakse kĂ”iki kaasaegseid operatsioonisĂŒsteeme ja arhitektuure, sealhulgas Venemaa Elbrus 2000. libmdbx jaoks on pakutud arenenud API C++-le ning toetatud huviliste raamistikke Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.
Ajalooliselt on libmdbx sĂŒgavalt ĂŒmber töödelud andmebaas LMDB-st ning ĂŒletab oma eelkĂ€ijat usaldusvÀÀrsuse, vĂ”imaluste ja jĂ”udluse poolest. LMDB-ga vĂ”rreldes on libmdbx-is suurt tĂ€helepanu pööratud koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Saadaval on andmebaasi struktuuri terviklikkuse kontrollimise utiliit mĂ”ningate taastamisvĂ”imalustega. Tehnoloogiliselt pakub libmdbx ACID-i, ranget muudatuste seeriat ja mittetakistavat lugemist, millel on lineaarne skaleerimine CPU tuumade vahel. Toetatud on automaatne kompaktimine, andmebaasi suuruse automaatne haldamine ning vahemike pĂ”hjal tehtud valimite hindamine.
Peamised muudatused:
- GC vĂ€rskendust tippide/tagastamisel lehtede loendites keerukates stsenaariumides on kiirus suurenenud. Parandatud ja aktiveeritud eelnevalt vĂ€lja lĂŒlitatud katsetav tagasiside reĆŸiim. See parandas oluliselt kokkulangevust (vĂ€hendas ĂŒmberkatsete arvu) ning kĂ”rvaldati viga, mis viis âtsĂŒklisseâ tehingute fikseerimisel (MDBX_PROBLEM viga) harvades spetsiifilistes tingimustes.
- CMake'i ehitus skriptides on lisatud standard C23.
- Lisatud on T-makro paari funktsioonide char/wchar_t jaoks.
- C++ API-s on lisatud toetust pesastatud kirjutamise tehingutele.
- Liigutud on teine ââredaktsioon semantilise versioonikontseptsiooni spetsifikatsioonist (âSemantic Versioning 2â) ja tagatud versiooni info eksportimine VERSION.json faili.
- Kogude korduvuse tagamiseks on lisatud keskkonnamuutuja SOURCE_DATE_EPOCH tugi. MDBX_BUILD_TIMESTAMP tugi on sÀilinud ja see muutujal on esikohal.
- Lisatud on vĂ”imalus mÀÀrata lisainfot libmdbx kogumise kohta lĂ€bi valiku MDBX_BUILD_METADATA. See info lisatakse nĂŒĂŒd lihtsalt raamatukokku mdbx_build.metadata vÀÀrtusena ja hiljem kasutatakse seda ka pakettide koostamisel jne.
- Lisatud on vigade logimine, mis tagastatakse API-st. NĂŒĂŒd piisab, kui mÀÀrata MDBX_LOG_DEBUG logimise tase (vigade logimiseks vĂ€lja arvatud MDBX_NOTFOUND) vĂ”i MDBX_LOG_TRACE (kĂ”igi vigade logimiseks, sealhulgas MDBX_RESULT_TRUE).
- KĂ€itumise muutus:
- Lisatud on meetod mdbx::cursor::get_multiple_samelength() ja renimeeritud on mdbx::txn::put_multiple_samelength().
- C++ API ĂŒhtsuse tagamiseks tagastatakse MDBX_GET_MULTIPLE operatsiooni teostamisel nĂŒĂŒd ka vĂ”tme vÀÀrtus.
- MÔÔtkonstantide mdbx::env::geometry baastĂŒĂŒp on muudetud ilma mĂ€rgita size_t tĂŒĂŒbi asemel mĂ€rgiliseks intptr_t-iks.
- Valik ntdll kasutamiseks CRT asemel tehakse nĂŒĂŒd ainult siis, kui C++ API on selgesĂ”naliselt vĂ€ljalĂŒlitatud.
- Tagatud on mĂ€luleke tagasi lĂŒkatud/katkestatud lugemistehingutelt, mis edastatakse mdbx_txn_commit(). API kokkulepe nĂ”uab, et sellised tehingud vabastataks mdbx_txn_abort() kaudu, mistĂ”ttu funktsioon mdbx_txn_commit() tagastab sellistel juhtudel vea, mitte ei hĂ€vita ise tehingut. See pĂ”hjustas mĂ€lulekkeid rakenduste vigade tĂ”ttu, mis sundis kĂ€itumist muutma.
- Makro __deprecated_enum kasutamine, kui see on mÀÀratletud.
- CMake'i kaudu ehitamisel valitakse C keele standard nĂŒĂŒd CMAKE_C_STANDARD arvestusega.
Allikas: opennet.ru
