Megjelent a nagy teljesítményű beágyazott DBMS libmdbx 0.10.

Három hónap fejlesztés után megjelent a libmdbx 0.10.0 (MDBX) könyvtár, amely egy magas teljesítményű, kompakt beágyazott kulcs-érték adatbázist valósít meg. A libmdbx kódja az OpenLDAP Public License alatt terjesztett. A libmdbx a LMDB adatbázis mélyreható átdolgozása, és a fejlesztők állítása szerint megbízhatóságban, funkciókészletben és teljesítményben felülmúlja ősét. Azt állítják, hogy a libmdbx akár 20%-kal gyorsabb az LMDB-nél CRUD forgatókönyvekben, és akár 30%-kal gyorsabb, ha a libmdbx fordítása során letiltják a belső ellenőrzést, ezáltal összehasonlíthatóvá válik az LMDB-vel.

A libmdbx ACID-t, szigorú változás-sorozatot és nem blokkoló olvasást kínál, amely lineárisan skálázódik a CPU magok számával. A libmdbx nagy figyelmet fordít a kód minőségére, az API stabil működésére, tesztelésre és automatikus ellenőrzésekre. Támogatásra kerül az automatikus tömörítés, az adatbázis méretének automatikus kezelése, egy egységes adatbázis-formátum 32 bites és 64 bites kiadások számára, valamint a tartományokra (range query) vonatkozó becslés. Szükséges a struktúra integritásának ellenőrzésére szolgáló eszköz néhány helyreállítási funkcióval. 2016 óta a projektet a Positive Technologies finanszírozza, és 2017 óta a termékeikben használják, a Positive Technologies ellen az Egyesült Államok által bevezetett szankciók pedig nem gyakorolnak számottevő hatást.

A legutóbbi kiadás óta hozzáadott főbb újítások, fejlesztések és javítások:

  • Elérhető a Mahlon E. Smith Ruby kötése és a Noel Kuntze Python kötéseinek próbaverziója, valamint frissítve lettek a GoLang kötései Alexey Sharov által.
  • Az „MDBX_WRITEMAP” üzemmódban, amikor az adatbázis adatai közvetlenül a RAM-ban változnak, megvalósult a módosított adatbázislapok „átlátható átkonvertálása” a lemezre. Mostantól, minden egyes művelet befejezése után ezek az oldalak azonnal teljesen készen állnak a lemezre írásra, és az operációs rendszer magja önállóan képes törölni a módosított oldalakat a lemezre, a tranzakció rögzítése nem igényel módosítást. Ennek eredményeként, olyan kiszolgáltatott forgatókönyvek esetén, amikor a RAM-igény magas, a lemezes műveletek mennyisége akár 2-szer is csökkenthető.
  • Megvalósult a már régóta nem használt árnyékmásolatok eltávolítása azokon az oldalon, amelyek hosszú értékekkel rendelkeznek, amelyek a legtöbb esetben csak egyszer módosulnak egy tranzakció során. Ennek eredményeként csökken a lemezhasználat és növekszik a teljesítmény a nagyon nagy tranzakciókkal rendelkező forgatókönyvekben.
  • Megvalósult egy "okos" lapmegosztási mód a kulcsok beszúrásakor. Most már a rendezett sorozatok beszúrásakor automatikusan biztosított a lapok teljes kitöltése, míg egyéb esetekben optimálisabb faegyensúlyozás. Ennek eredményeként átlagosan a DB oldalak optimálisabban töltődnek ki, és a B-fa egyensúlyozottabbá válik, ami pozitívan hat a teljesítményre.
  • Hozzáadták az oldalműveletek statisztikáit, így pontosan fel lehet mérni az adatbázis módosító műveleteinek költségeit.
  • Több mint tíz hibát és véletlenszerűséget megszüntettek, többek között: megoldották a MinGW által történő fordítás során felmerülő problémákat, az `std::filesystem::path` használatát iOS <= 13.0-n, a régi Windows verziókra való célzott fordítást stb.
  • Összesen több mint 200 változtatást végeztek el 66 fájlban, körülbelül 6500 soros új kódot adtak hozzá, és körülbelül 4500 sort távolítottak el.

Kiemelendő, hogy a Turbo-Geth (Go-Ethereum turbo fork) projekt választotta a libmdbx-et mint új tárolási hátteret, és köszönetet szeretnénk mondani a projekt csapatának (különösen Alekszandr Sarov, Artem Vorotnikov és Alekszandr Akhunov) a szélsőséges használati forgatókönyvek tesztelésében nyújtott nagy segítségért. Különösen így fedezték fel és szüntették meg azt a hibát, amely a korai olvasás/caching kezelésével kapcsolatos, és amely teljesítményromláshoz vezetett bonyolult reprodukálható forgatókönyvekben nagy adatbázisokkal.

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