Pušten na slobodu biblioteka verzija 0.9.1 libmdbx (MDBX) implementacija visokoučinkovite, kompaktne ugrađene baze podataka ključ-vrijednost. Libmdbx kod se distribuira pod licencom OpenLDAP javna licenca.
Trenutna verzija je kompromis između namjere izdavanja dugoročne stabilne verzije 1.0 s potpunom podrškom za C++ i nevoljkosti odgađanja izdanja zbog nepripremljenosti za zamrzavanje novog C++ API-ja. Predstavljeno izdanje rezultat je 9 mjeseci rada usmjerenog na stabilizaciju knjižnice i poboljšanje njezine upotrebljivosti, a uključuje i preliminarnu verziju C++ API.
Biblioteka libmdbx nije samo "fork", već radikalno redizajniran potomak LMDB — transakcijski ugrađeni DBMS klase "ključ-vrijednost" na temelju drvo B+ bez proaktivno bilježenje, koji omogućuje procesima s više niti da rade konkurentno i učinkovito s lokalno dijeljenom (ne-mrežnom) bazom podataka bez namjenskog poslužiteljskog procesa. libmdbx u osnovi širi se sposobnosti svog pretka, dok istovremeno eliminira ili ublažava nedostatke. U isto vrijeme, prema programerima, libmdbx je malo brži i znatno pouzdaniji od LMDB-a.
libmdbx predlaže ACID, stroga serijalizacija promjena i neblokirajuće čitanje s linearnim skaliranjem preko CPU jezgri. Rezultati testiranja performansi (slanje paralelnih zahtjeva za čitanje/pretraživanje u 1-2-4-8 niti na CPU i7-4600U s 2 fizičke jezgre u 4-nitnom HyperThread modu):
Najvažnije razlike između MDBX i LMDB:
U osnovi, više se pažnje posvećuje kvaliteti koda, dosljednosti API-ja, testiranju i automatskim provjerama.
Znatno više kontrole tijekom rada, od provjere parametara do interne revizije struktura baze podataka.
Auto-kompaktifikacija i automatsko upravljanje veličinom baze podataka.
Jedinstveni format baze podataka za 32-bitne i 64-bitne sklopove.
Procjena volumena uzorka po rasponima (procjena upita raspona).
Podrška za dvostruko duže ključeve i veličinu stranice baze podataka koju može odabrati korisnik.
Uslužni program za provjeru integriteta strukture baze podataka s nekim mogućnostima oporavka.
Glavne inovacije i poboljšanja nakon prethodne vijesti s uvođenjem verzije 0.5 u siječnju 2020.:
Izrađen je otvoreni sustav za brzu podršku i odgovore na pitanja. Telegram grupa.
Otklonjeno je više od desetak grešaka i nedostataka (vidi. dnevnik promjena).
Ispravljeno je mnogo tipfelera i pravopisnih pogrešaka, te su napravljena brojna kozmetička poboljšanja.
Ugrađena dokumentacija u Doxygen formatu i automatsko generiranje Online dokumentacija.
Omogućeno je automatsko generiranje arhiva s amalgamiranim izvornim tekstovima.
Dodana podrška za pripremu transakcija i kursora, korisničkih konteksta za transakcije i kursora.
Implementirane su dodatne metode za kontrolu referentnog integriteta u MVCC snimkama B+stabla.
Dodana podrška za provjeru MVCC snimke baze podataka, dostupnoj putem bilo koje meta stranice s mogućnošću prebacivanja za oporavak.
Implementirana podrška za ponovno otvaranje baze podataka iz jednog procesa u svrhu testiranja itd.
Implementirana automatska obrada opcije MDBX_NOSUBDIR prilikom otvaranja baze podataka.
Dodane funkcije za generiranje cjelobrojnih ključeva iz vrijednosti s pomičnim zarezom i JavaScript "univerzalnih" brojeva.
Ukupno je napravljeno 430 promjena koje su utjecale na 93 datoteke, dodano je više od 25 tisuća redaka, više od 8.5 tisuća redaka je izbrisano.
Naknadni razvoj libmdbx-a usredotočit će se na konačni C++ API, daljnju stabilizaciju osnovnog koda, poboljšanje upotrebljivosti biblioteke i pakiranje za popularne distribucije Linuxa. Među predloženim poboljšanjima vrijedi istaknuti podršku za ključeve u formatu MessagePack.