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

A libmdbx 0.11.3 (MDBX) könyvtárat egy nagy teljesítményű kompakt beágyazott kulcsérték-adatbázis megvalósításával adták ki. A libmdbx kódot az OpenLDAP nyilvános licence licenceli. Az összes jelenlegi operációs rendszer és architektúra támogatott, csakúgy, mint az orosz Elbrus 2000. 2021 végén a libmdbx-t tároló háttérként használják a két leggyorsabb Ethereum kliensben – az Erigonban és az új „Sharkban”, amely a rendelkezésre álló adatok szerint információ, a legnagyobb teljesítményű Ethereum kliens.

A történelem során a libmdbx az LMDB DBMS alapos újratervezése, és megbízhatóság, szolgáltatáskészlet és teljesítmény tekintetében felülmúlja elődjét. Az LMDB-hez képest a libmdbx nagy hangsúlyt fektet a kódminőségre, az API stabilitására, a tesztelésre és az automatizált ellenőrzésekre. Az adatbázis-struktúra integritásának ellenőrzésére szolgáló segédprogram néhány helyreállítási opcióval együtt található.

Technológiai szempontból a libmdbx ACID-ot, erős változás-sorosítást és nem blokkoló olvasást kínál lineáris skálázással a processzormagok között. Az automatikus tömörítés, az automatikus adatbázisméret-kezelés és a tartománylekérdezések becslése támogatott. 2016 óta a projektet a Positive Technologies finanszírozza, és 2017 óta használják termékeiben.

A libmdbx C++ API-t, valamint rajongók által támogatott nyelvi kötéseket kínál a Rust, Haskell, Python, NodeJS, Ruby, Go és Nim számára.

Főbb újítások, fejlesztések és korrekciók az előző, október 11-i hír óta:

  • A C++ API használatra késznek tekinthető.
  • Jelentősen felgyorsult a GC adatok frissítése hatalmas tranzakciók végrehajtása során, ami különösen fontos a libmdbx használatakor az Ethereum ökoszisztémában.
  • Az adatbázis formátumának belső aláírása módosult, hogy támogassa az automatikus frissítést, ami teljesen átlátható a felhasználók számára. Ez lehetővé teszi az adatbázis-sérülésről szóló hamis pozitív üzenetek kiküszöbölését, amikor a könyvtár elavult verzióit használják a jelenlegi verziók által rögzített tranzakciók olvasására.
  • Hozzáadott mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() és mdbx_env_get_syncbytes() függvények. Támogatás hozzáadva az MDBX_SET_UPPERBOUND művelethez.
  • A C++ 11/14/17/20 módban támogatott fordítókkal való építéskor minden figyelmeztetés megszűnt. A kompatibilitás a régebbi fordítókkal biztosított: Clang 3.9-től, gcc 4.8-tól, beleértve a cdevtoolset-9 használatával történő összeszerelést CentOS/RHEL 7-hez.
  • Kijavítottuk a metaoldal-ütközés lehetőségét, miután manuálisan váltott egy adott metaoldalra az mdbx_chk segédprogrammal.
  • Javítva a váratlan MDBX_PROBLEM hiba, amely a régi metaoldalak felülírásakor jelenik meg.
  • Javítva az MDBX_NOTFOUND visszaadása pontatlan egyezés esetén MDBX_GET_BOTH kérés feldolgozása során.
  • Kijavítottunk egy fordítási hibát Linuxon a kernellel való interfész leírását tartalmazó fejlécfájlok hiányában.
  • Kijavítottuk az ütközést az MDBX_SHRINK_ALLOWED belső jelző és az MDBX_ACCEDE beállítás között.
  • Számos szükségtelen érvényesítés-ellenőrzést megszüntettünk.
  • Javítva az MDBX_RESULT_TRUE váratlan visszatérése az mdbx_env_set_option() függvényből.
  • Összesen 90 fájlon több mint 25 módosítás történt, ~1300 sor került hozzáadásra, ~600 törölve.

Forrás: opennet.ru

Hozzászólás