A libmdbx 0.13.2 verziójának kiadása

Megjelent a libmdbx 0.13.2 (MDBX) könyvtár, amely egy nagy teljesítményű, kompakt beágyazott kulcs-érték adatbázist valósít meg. A libmdbx kódja Apache 2.0 licenc alatt áll rendelkezésre. Támogatottak a legfrissebb operációs rendszerek és architektúrák, beleértve az orosz Elbrus 2000-et is. A libmdbx egy fejlett API-t kínál C++ nyelven, valamint közösségi támogatással elérhető a Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno és Scala nyelvekhez is.

Történelmileg a libmdbx a LMDB adatbázis mélyreható újragondolása, amely megbízhatóságban, képességekben és teljesítményben felülmúlja elődjét. Az LMDB-hez képest a libmdbx nagy hangsúlyt fektet a kód minőségére, az API stabil működésére, a tesztelésre és az automatikus ellenőrzésekre. Egy adatbázis-struktúra integritásának ellenőrzésére szolgáló segédprogram is rendelkezésre áll, amely bizonyos helyreállítási lehetőségeket is biztosít. Technológiailag a libmdbx ACID, szigorú változás-sorozatolás és blokkolás nélküli olvasás támogatását nyújtja, lineáris skálázódással a CPU magok felett. A program automatikus tömörítése és az adatbázis méretének automatikus kezelése, valamint a tartományok szerinti lekérdezések becslésének lehetősége is biztosított.

Főbb változások:

  • Felgyorsult a GC frissítése a laplista visszaadásakor/elhelyezésekor bonyolult forgatókönyvekben. A korábban letiltott kísérleti korrekciós visszajelzési mód fejlesztésre került és aktiválva lett. Ennek következtében lényegesen javult a konvergencia (csökkent a próbálkozások száma), valamint megszüntették azt a hibát, amely a tranzakciók rögzítésekor (MDBX_PROBLEM hiba visszaadásával) ritka specifikus feltételek mellett 'ciklusba' juttatta a rendszert.
  • A CMake építési szkriptekbe bekerült a C23 szabvány.
  • T-makrók kerültek hozzáadásra a char/wchar_t páros függvényekhez.
  • A C++ API-hoz hozzáadva a beágyazott írási tranzakciók támogatása.
  • Átálltunk a szemantikus verziókezelés második kiadására ('Semantic Versioning 2'), és biztosítottuk a verzióinformációk exportálását a VERSION.json fájlba.
  • Egy olyan környezeti változó támogatását is hozzáadtuk, mint a SOURCE_DATE_EPOCH a build reprodukálhatóságának biztosítása érdekében. Az MDBX_BUILD_TIMESTAMP támogatása megmaradt, és ez a változó elsőbbséget élvez.
  • Új lehetőség került hozzáadásra a libmdbx összeszerelésének további információinak megadására az MDBX_BUILD_METADATA opció segítségével. A megadott információk most egyszerűen beépülnek a könyvtárba az mdbx_build.metadata értékeként, és később a csomagok és hasonlók létrehozásánál is felhasználásra kerülnek.
  • Hibák naplózása került bevezetésre az API-ból. Ehhez mostantól elegendő beállítani a MDBX_LOG_DEBUG naplózási szintet (a hibák naplózásához a MDBX_NOTFOUND kivételével) vagy a MDBX_LOG_TRACE szintet (minden hiba, valamint a MDBX_RESULT_TRUE naplózása).
  • A viselkedés megváltozása:
    • Hozzáadva a mdbx::cursor::get_multiple_samelength() metódus, és átnevezve a mdbx::txn::put_multiple_samelength() metódus.
    • A C++ API egységessége érdekében az MDBX_GET_MULTIPLE művelet végrehajtásakor mostantól a kulcs értéke is visszaadásra kerül.
    • A mdbx::env::geometry méretkonstansainak alap típusa megváltozott a nem-pozitív size_t típusból a pozitív intptr_t típusra.
    • Az ntdll használatának előnyben részesítése csak akkor történik, ha a C++ API kifejezetten letiltásra kerül.
    • Biztosítva van a visszavont/megszakított olvasási tranzakciók memória felszabadítása, amelyeket a mdbx_txn_commit() függvénybe adnak át. Az API megállapodás megköveteli, hogy az ilyen tranzakciókat a mdbx_txn_abort() segítségével szabadítsák fel, ami miatt a mdbx_txn_commit() függvény hibát adott vissza ilyen esetekben anélkül, hogy magukat a tranzakciókat megszüntette volna. Ez memória szivárgásokhoz vezetett a hibás alkalmazásokból, ami viselkedésváltást indokolt.
    • Az __deprecated_enum makró használata, ha az definiálva van.
    • CMake használata során a C nyelv szabványának kiválasztása ezentúl a CMAKE_C_STANDARD figyelembevételével történik.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster