a második jelölt a könyvtár kiadásának tesztelésére 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 OpenLDAP Public License licenc alatt.
Az MDBX könyvtár lényegesen átdolgozott ága — a kulcs-érték klasszikus beágyazott adatbázisokhoz készült tranzakciós adatbázisának növekményes alapján nélkül , 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 é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 .
- 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 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 , 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. Apache 2.0 licenc alatt, nem pedig ).
- 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 é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
