0.9.1-es könyvtárverzió (MDBX) egy nagy teljesítményű, kompakt beágyazható kulcs-érték adatbázis megvalósításával. A libmdbx kódja a következő licenc alatt terjesztett: .
A jelenlegi verzió kompromisszum a 1.0-ás hosszú távú stabil verzió kiadására irányuló szándék és a C++ teljes támogatásának késlekedése között, amit a új C++ API fagyasztásának késlekedése miatt nem akarnak halogatni. A bemutatott kiadás 9 hónap munkájának eredménye, amely a könyvtár stabilizálására és használhatóságának javítására irányult, valamint tartalmaz egy előzetes verziót .
A libmdbx könyvtár nem csupán egy "fork", hanem radikálisan átdolgozott utódja — 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öbb szálon futó folyamatok számára, hogy párhuzamosan és hatékonyan dolgozzanak a lokálisan megosztott (nem hálózati) adatbázissal dedikált szerverfolyamat nélkül. A libmdbx alapvetően az ősének lehetőségeit, miközben eltünteti vagy enyhíti a hátrányokat. A fejlesztők meggyőződése szerint a libmdbx némileg gyorsabb és lényegesen megbízhatóbb, mint az LMDB.
A libmdbx kínál , szigorú változás-sorozat kezelést és nem blokkoló olvasást, lineáris skálázással a CPU magok között. A teljesítménytesztelési eredmények (párhuzamos lekérdezések küldése 1-2-4-8 szálon az i7-4600U CPU-val, amely 2 fizikai maggal rendelkezik, 4 szálas HyperThread üzemmódban):
A legfontosabb különbségek az MDBX és az LMDB között:
- Alapvetően nagyobb figyelmet fordítanak a kód minőségére, az API "stabilitására", a tesztelésre és az 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).
- Az adatbázis kulcsainak kétszer akkora hosszának támogatása és felhasználó által választható oldalméret.
- Az adatbázis szerkezetének integritásának ellenőrző segédprogramja bizonyos helyreállítási lehetőségekkel.
A legfontosabb újdonságok és fejlesztések az a 0.5-ös verzió bemutatásával 2020 januárjában:
- A gyors válaszok és kérdések megválaszolása érdekében egy nyílt .
- Több mint tucatnyi hibát és hiányosságot kijavítottak (lásd: ).
- Számos elírást és helyesírási hibát kijavítottak, többszörös kozmetikai javítások.
- Bővített tesztesetek.
- iOS, Android támogatás valósult meg, , , , és .
- Bemutatásra került egy előzetes C++ API verzió. .
- A Doxygen formátumú beépített dokumentáció elkészült, valamint a automatikus generáció .
- Automatikus archívumkészítés biztosítva van az amalgámált forrásszövegekkel.
- Fellépés a tranzakciók és kurzorok, felhasználói kontextusok előkészítésében.
- Kiegészítő módszerek megvalósítása a hivatkozási integritás ellenőrzésére MVCC-képekben B+fa.
- MVCC-dokumentum ellenőrzésének támogatása bevezetve bármely meta-oldalon, visszaállítási lehetőséggel.
- A DB újranyitásának támogatása megvalósítva egy folyamattól a tesztelés céljából stb.
- Az MDBX_NOSUBDIR opció automatikus kezelése megvalósítva a DB megnyitásakor.
- Egész számú kulcsok képzésének funkciói hozzáadva lebegőpontos értékekből és "univerzális" JavaScript számokból.
- Összesen 430 változtatás történt, 93 fájlt érintve, több mint 25 ezer sor hozzáadva, több mint 8.5 ezer sor törölve.
A libmdbx további fejlesztése a végső C++ API kialakítására, a alapkód stabilizálására, a könyvtár használhatóságának javítására, valamint csomagok előkészítésére népszerű Linux disztribúciók számára fog összpontosítani. Az esedékes fejlesztések közül megemlítendő a kulcsok támogatása .
Forrás: opennet.ru
