A libmdbx 0.11.3 nagy teljesítményű beágyazott DBMS kiadása

Megjelent a libmdbx 0.11.3 (MDBX) könyvtár, amely egy nagy teljesítményű, kompakt beágyazott kulcs-érték adatbázis. A libmdbx kódja az OpenLDAP Public License alatt terjed. Támogatja az összes aktuális operációs rendszert és architektúrát, valamint az orosz Elbrus 2000-et is. A 2021-es év végén a libmdbx a leggyorsabb Ethereum kliensek, az Erigon és az új „Akula” háttértárolójaként működik, amely a rendelkezésre álló információk alapján a legnagyobb teljesítményű Ethereum kliens.

Történelmileg a libmdbx a LMDB adatbázis mélyreható átdolgozása, amely megbízhatóság, funkciókészlet és teljesítmény szempontjából felülmúlja elődjét. A 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. A csomag tartalmaz egy adatbázis-struktúra integritásának ellenőrzésére szolgáló segédeszközt, néhány helyreállítási képességgel.

Technológiailag a libmdbx ACID, szigorú változás-sorozatot és nem blokkoló olvasást kínál, lineárisan skálázható CPU magok szerint. Támogatja az automatikus tömörítést, az adatbázis méretének automatikus kezelését, valamint a tartomány-alapú lekérdezések (range query estimation) volumeneinek becslését. 2016 óta a projektet a Positive Technologies finanszírozza, és 2017 óta a termékeikben használják.

A libmdbx-hez C++ API-t kínálnak, valamint érdeklődő programozók által támogatott kötéseket Rust, Haskell, Python, NodeJS, Ruby, Go és Nim nyelvekhez.

A legújabb újdonságok, fejlesztések és hibajavítások, amelyek a legutóbbi, október 11-i hír óta kerültek hozzáadásra:

  • A C++ API készen áll a használatra.
  • Jelentősen felgyorsult a GC adatainak frissítése hatalmas tranzakciók rögzítésekor, ami különösen releváns a libmdbx Ethereum ökoszisztémában való használata során.
  • Megváltozott az adatbázis formátumának belső aláírása, automatikus frissítéssel, amely teljesen átlátható a felhasználók számára. Ez lehetővé teszi a hamis pozitív adatbázis-hibajelzések elkerülését, amikor elavult könyvtárverziók használatosak az aktuális verziók által rögzített tranzakciók olvasásakor.
  • Hozzáadva a következő függvények: mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() és mdbx_env_get_syncbytes(). Támogatás került az MDBX_SET_UPPERBOUND művelethez is.
  • Minden figyelmeztetést eltávolítottak a támogatott fordítóprogramok által a C++ 11/14/17/20 módokban történő fordítás során. Biztosítva van a kompatibilitás az elavult fordítóprogramokkal: clang 3.9-től kezdődően, gcc 4.8-től kezdődően, beleértve a sdevtoolset-9 általi fordítást CentOS/RHEL 7-hez.
  • Elkerülve a metaoldalak összecsapásának lehetőségét, miután kézi váltással egy adott metaoldalra ugranak az mdbx_chk segédprogram segítségével.
  • Javítva lett a váratlan MDBX_PROBLEM hibakód visszaadása, amikor elavult metaoldalak felülírásra kerülnek.
  • Javították az MDBX_NOTFOUND visszatérítést, ha a keresési kérés MDBX_GET_BOTH feldolgozása során pontatlan egyezés történt.
  • Elhárították a Linux-on fellépő fordítási hibát, amikor hiányoztak a kernelleíró fejlécek.
  • Javították a MDBX_SHRINK_ALLOWED belső jelző és a MDBX_ACCEDE opció közötti ütközést.
  • Több felesleges assert-ellenőrzés eltávolítva.
  • Javítva az mdbx_env_set_option() függvényből váratlanul visszatérő MDBX_RESULT_TRUE.
  • Összesen több mint 90 változtatás történt 25 fájlban, ~1300 sor hozzáadva, ~600 sor törölve.

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