Vydané verzia knižnice 0.9.1 libmdbx (MDBX) implementácia vysokovýkonnej kompaktnej databázy kľúč-hodnota. Kód libmdbx je distribuovaný pod licenciou Verejná licencia OpenLDAP.
Aktuálna verzia je kompromisom medzi zámerom vydať dlhodobo stabilnú verziu 1.0 s plnou podporou C++ a neochotou odkladať vydania z dôvodu nepripravenosti na zmrazenie nového C++ API. Prezentovaná verzia je výsledkom 9-mesačnej práce zameranej na stabilizáciu knižnice a zlepšenie jej použiteľnosti a obsahuje aj predbežnú verziu C++ API.
Knižnica libmdbx nie je len „fork“, ale radikálne prerobený potomok LMDB — transakčné vstavané DBMS triedy „kľúč – hodnota“ založené na strom B+ bez proaktívne protokolovanie, ktorý umožňuje viacvláknovým procesom pracovať konkurencieschopne a efektívne s lokálne zdieľanou (nesieťovou) databázou bez dedikovaného serverového procesu. libmdbx zásadne expanduje schopnosti svojho predka pri súčasnom odstránení alebo zmiernení nevýhod. Zároveň je podľa vývojárov libmdbx o niečo rýchlejší a výrazne spoľahlivejší ako LMDB.
libmdbx navrhuje ACID, prísna serializácia zmien a neblokujúce čítanie s lineárnym škálovaním naprieč jadrami CPU. Výsledky testovania výkonu (odosielanie paralelných požiadaviek na čítanie/vyhľadávanie v 1-2-4-8 vláknach na CPU i7-4600U s 2 fyzickými jadrami v 4-vláknovom režime HyperThread):
Najdôležitejšie rozdiely medzi MDBX a LMDB:
V zásade sa väčšia pozornosť venuje kvalite kódu, konzistencii API, testovaniu a automatickým kontrolám.
Výrazne väčšia kontrola počas prevádzky, od kontroly parametrov až po interný audit databázových štruktúr.
Automatická kompaktifikácia a automatická správa veľkosti databázy.
Formát jednej databázy pre 32-bitové a 64-bitové zostavy.
Odhad objemov vzoriek podľa rozsahov (odhad dotazu na rozsah).
Podpora pre dvakrát dlhšie klávesy a užívateľsky voliteľná veľkosť stránky databázy.
Pomôcka na kontrolu integrity štruktúry databázy s niektorými schopnosťami obnovy.
Hlavné inovácie a vylepšenia po predchádzajúce správy so zavedením verzie 0.5 v januári 2020:
Pre rýchlu podporu a odpovede na otázky bol vytvorený otvorený systém. Telegramová skupina.
Bolo odstránených viac ako tucet chýb a nedostatkov (viď. changelog).
Opravilo sa veľa preklepov a pravopisných chýb a urobili sa mnohé kozmetické vylepšenia.
Zabudovaná dokumentácia vo formáte Doxygen a automatické generovanie Online dokumentácia.
Poskytuje sa automatické generovanie archívov so zlúčenými zdrojovými textami.
Pridaná podpora pre prípravu transakcií a kurzorov, užívateľské kontexty pre transakcie a kurzory.
Boli implementované ďalšie metódy na kontrolu referenčnej integrity v snímkach B+tree MVCC.
Pridaná podpora pre kontrolu MVCC snímky databázy, prístupná cez akúkoľvek meta stránku s možnosťou prepínania na obnovu.
Implementovaná podpora opätovného otvorenia databázy z jedného procesu na testovacie účely atď.
Implementované automatické spracovanie voľby MDBX_NOSUBDIR pri otváraní databázy.
Pridané funkcie na generovanie celočíselných kľúčov z hodnôt s pohyblivou rádovou čiarkou a „univerzálnych“ čísel JavaScriptu.
Celkovo bolo vykonaných 430 zmien týkajúcich sa 93 súborov, pridaných viac ako 25 tisíc riadkov, zmazaných viac ako 8.5 tisíc riadkov.
Následný vývoj libmdbx sa zameria na finálne C++ API, ďalšiu stabilizáciu základného kódu, zlepšenie použiteľnosti knižnice a balenie pre populárne linuxové distribúcie. Medzi navrhovanými vylepšeniami stojí za zmienku podpora kľúčov vo formáte MessagePack.