Öt év fejlesztés után megjelent a libmdbx 1.0 második kiadási jelöltje.

Elérhető a második jelölt a könyvtár kiadásának tesztelésére libmdbx a kulcs-érték osztályú, nagy teljesítményű, kompakt beágyazott adatbázis megvalósításával. A jelenlegi verzió (0.5) technikai kiadás, amely jelzi a kiegészítések befejezését és az áttérést a nyilvános végső tesztelési és stabilizálási fázisra, majd a könyvtár első teljes kiadásának kialakítására. A libmdbx kódja terjesztésre kerül OpenLDAP Public License licenc alatt.

Az MDBX könyvtár lényegesen átdolgozott ága LMDB — a kulcs-érték klasszikus beágyazott adatbázisokhoz készült tranzakciós adatbázisának növekményes alapján B+ fának nélkül előzetes naplózás, amely lehetővé teszi a többszálú folyamatok számára, hogy versenyképesen és hatékonyan dolgozzanak a helyben megosztott (nem hálózati) adatbázissal. Ezen belül az MDBX gyorsabb és megbízhatóbb, mint az LMDB, miközben megőrzi az ősének minden kulcsfontosságú lehetőségét, mint például ACID és a nem blokkoló olvasás lineáris skálázódása a CPU magok szerint.

A legfontosabb különbségek az MDBX és az LMDB között:

  • Elvileg több figyelmet fordítanak a kód minőségére, tesztelésre és automatikus ellenőrzésekre.
  • Jelentősen nagyobb kontroll a munka során, az paraméterek ellenőrzésétől kezdve a belső adatbázis struktúrák auditálásáig.
  • Automatikus tömörítés és az adatbázis méretének automatikus kezelése.
  • Egységes adatbázis formátum 32 bites és 64 bites build-ekhez.
  • Kérdés- és kiterjedés szerinti becslés (range query estimation).
  • A felhasználó által választható adatbázis méret kétszeres kulcs támogatása.

A libmdbx kiadott jelölti verziója az MDBX és a MithrilDB projektek szeptemberi szétválasztásáról hozott döntés eredménye. A libmdbx-ben úgy döntöttek, hogy eltávolítják a (racionális) maximális technikai adósságot és stabilizálják a könyvtárat. A tények szerint a megjelölt irányban 2-3-szor többet valósítottak meg, mint amit előzetesen értékeltek és terveztek:

  • Támogatás valósult meg macOS és a "második vonalbeli" platformok számára: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Az AIX és a HP-UX támogatás szükség esetén hozzáadható.
  • A kód sanálása az Undefined Behavior Sanitizer és az Address Sanitizer segítségével közelít. Minden figyelmeztetés eltávolításra került a "-Wpedantic" kapcsolóval való fordítás során, minden figyelmeztetés a Coverity Static Analyzer-tól stb.
  • Frissítés API leírása.
  • A forráskód összevonása (amalgámáció) a beágyazás megkönnyítésére.
  • CMake támogatás.
  • Beágyazott tranzakciók támogatása.
  • A bootid használata az operációs rendszer újraindításának (az adatbázis piszkos leállítása) észlelésére.
  • A frissített/öreg oldalak számítása és bővített információk a tranzakciókról.
  • MDBX_ACCEDE opció az már megnyitott adatbázishoz való csatlakozáshoz kompatibilis módban.
  • Használat OFD zárolások azok elérhetősége esetén.
  • Forró biztonsági mentés pipe-on keresztül.
  • Különleges optimalizált algoritmus a belső rendezéshez (2-3 alkalommal gyorsabb, mint a "qsort()" és akár 30%-kal gyorsabb, mint a "std::sort()").
  • Növelt kulcshossz maximum.
  • Automatikus read ahead vezérlés (a DB fájlok memóriában való gyorsítótárazási stratégiája).
  • Aggresszívebb és gyorsabb automatikus tömörítés.
  • Optimálisabb B+ fa lapok egyesítési stratégiája.
  • A nem helyi fájlrendszerek (NFS, Samba stb.) ellenőrzése a DB károsodásának megakadályozása érdekében helytelen használat esetén.
  • Kibővített tesztkészlet.

A "következő" libmdbx verzió fejlesztése egy külön projekt keretein belül folytatódik MithrilDB, míg a "jelenlegi" MDBX verzió fejlesztési iránya a képességek leállítására és stabilizálására összpontosít. E döntés három okból született:

  • Teljes inkompatibilitás: a MithrilDB összes tervezett képességének megvalósításához külön (nem kompatibilis) DB fájlformátumra és más (nem kompatibilis) API-ra van szükség.
  • Új forráskód: a MithrilDB forráskódja biztosítja a LMDB függetlenséget, és magát a projektet más (jóváhagyott) licencek alatt tervezik közzétenni. OSI Apache 2.0 licenc alatt, nem pedig OpenLDAP Nyilvános Licenc).
  • A szétválasztás lehetővé teszi a potenciális zűrzavar elkerülését, egyértelműséget ad és biztosítja a projektek fejlesztései közötti függetlenséget.

A MithrilDB, akárcsak az MDBX, szintén a B+ fára épül, miközben rendkívül magas teljesítményt biztosít, megszüntetve az MDBX és LMDB számos alapvető hátrányát. Különösen megszűnik a "hosszú olvasások" problémája, amely az adatbázis "megnövekedését" okozza, mivel a szemét újrafeldolgozása hosszú olvasó tranzakciók miatt blokkolva van. A MithrilDB új lehetőségei közé tartozik:

  • Támogatás a DB több eltérő tárolón való elhelyezésére: HDD, SSD és nem volatilis memória.
  • Optimális stratégiák a "értékes" és "kevésbé értékes", valamint a "forró", "meleg" és "hideg" adatokhoz.
  • Merkle fae használata az adatbázis integritásának ellenőrzésére.
  • Opcionális WAL használat és lényegesen magasabb teljesítmény írás-intenzív forgatókönyvekben, valamint adatintegritási garanciák.
  • Lusta követő adatmentés a lemezekre.

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