A kompakt beágyazott DBMS libmdbx 0.9.1 kiadása

Megjelent könyvtári verzió 0.9.1 libmdbx (MDBX) egy nagy teljesítményű, kompakt beágyazott kulcsérték adatbázis megvalósítása. A libmdbx kód licenc alapján kerül terjesztésre OpenLDAP nyilvános licenc.

A jelenlegi verzió egy kompromisszum a hosszú távú stabil 1.0-s verzió teljes C++ támogatással kiadásának szándéka és az új C++ API lefagyasztására való felkészületlenség miatti vonakodás között. A bemutatott kiadás 9 hónapos, a könyvtár stabilizálását és használhatóságának javítását célzó munka eredménye, és egy előzetes verziót is tartalmaz. C++ API.

A libmdbx könyvtár nem csak egy "villa", hanem egy radikálisan újratervezett leszármazottja LMDB — a „kulcsérték” osztályba tartozó tranzakciós beágyazott DBMS-ek alapján fa B+ nélkül proaktív naplózás, amely lehetővé teszi a többszálú folyamatok versenyképes és hatékony működését egy helyileg megosztott (nem hálózati) adatbázissal, dedikált szerverfolyamat nélkül. libmdbx alapvetően kitágul őse képességeit, ugyanakkor kiküszöböli vagy mérsékli a hátrányokat. Ugyanakkor a fejlesztők szerint a libmdbx egy kicsit gyorsabb és lényegesen megbízhatóbb, mint az LMDB.

a libmdbx javasolja SAV, a változtatások szigorú sorosítása és a nem blokkoló olvasás lineáris skálázással a CPU magokon keresztül. Teljesítményteszt eredményei (párhuzamos olvasási/keresési kérelmek küldése 1-2-4-8 szálban 7 fizikai maggal rendelkező i4600-2U CPU-n 4 szálas HyperThread módban):

A kompakt beágyazott DBMS libmdbx 0.9.1 kiadása

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

  • Alapvetően nagyobb figyelmet fordítanak a kódminőségre, az API konzisztenciára, a tesztelésre és az automatikus ellenőrzésekre.
  • Lényegesen nagyobb kontroll az üzemeltetés során, a paraméterek ellenőrzésétől az adatbázis-struktúrák belső auditjáig.
  • Automatikus tömörítés és automatikus adatbázisméret-kezelés.
  • Egyetlen adatbázis-formátum 32 bites és 64 bites összeállításokhoz.
  • A minta mennyiségének becslése tartományok szerint (tartomány lekérdezés becslése).
  • Kétszer hosszabb kulcsok és a felhasználó által választható adatbázis-oldalméret támogatása.
  • Egy segédprogram az adatbázis-struktúra integritásának ellenőrzésére bizonyos helyreállítási képességekkel.

Fő újítások és fejlesztések után korábbi hírek a 0.5-ös verzió 2020 januári bevezetésével:

  • Nyílt rendszer jött létre a gyors támogatás és a kérdések megválaszolására. Távirat csoport.
  • Több mint egy tucat hibát és hiányosságot sikerült kiküszöbölni (lásd. változási napló).
  • Sok elírási és helyesírási hibát kijavítottak, és számos kozmetikai fejlesztést hajtottak végre.
  • A tesztforgatókönyvek kibővültek.
  • Támogatás iOS, Android, buildroot, musl, uClibc, WSL1 и Bor.
  • A C++ API előnézete megjelent egy fejlécfájlt.
  • Beépített dokumentáció Doxygen formátumban és automatikus generálás Online dokumentáció.
  • Az archívumok automatikus generálása az egyesített forrásszövegekkel biztosított.
  • Hozzáadott támogatás a tranzakciók és kurzorok előkészítéséhez, a tranzakciók felhasználói kontextusaihoz és a kurzorokhoz.
  • További módszerek kerültek bevezetésre a hivatkozási integritás szabályozására a B+fa MVCC pillanatképekben.
  • Támogatás hozzáadva az adatbázis MVCC-pillanatképének ellenőrzéséhez, amely bármely metaoldalon keresztül elérhető, és lehetőség van a helyreállításra váltani.
  • Bevezetett támogatás az adatbázis egy folyamatból történő újranyitásához tesztelési célokra stb.
  • Az MDBX_NOSUBDIR opció automatikus feldolgozása adatbázis megnyitásakor.
  • Hozzáadott funkciók egész kulcsok generálásához lebegőpontos értékekből és JavaScript „univerzális” számokból.
  • Összesen 430 módosítás történt 93 fájlt érintve, több mint 25 ezer sor került hozzáadásra, több mint 8.5 ezer sort töröltek.

A libmdbx későbbi fejlesztése a végső C++ API-ra, az alapkód további stabilizálására, a könyvtár használhatóságának javítására, valamint a népszerű Linux disztribúciók csomagolására összpontosít. A javasolt fejlesztések között érdemes megemlíteni a kulcsok támogatását a formátumban MessagePack.

Forrás: opennet.ru

Hozzászólás