Vydáno verze knihovny 0.9.1 libmdbx (MDBX) implementace vysoce výkonné, kompaktní vestavěné databáze klíč-hodnota. Kód libmdbx je distribuován pod licencí OpenLDAP Public License.
Aktuální verze je kompromisem mezi záměrem vydat dlouhodobě stabilní verzi 1.0 s plnou podporou C++ a neochotou odkládat vydání kvůli nepřipravenosti na zmrazení nového C++ API. Prezentovaná verze je výsledkem 9 měsíců práce zaměřené na stabilizaci knihovny a zlepšení její použitelnosti a obsahuje také předběžnou verzi C++ API.
Knihovna libmdbx není jen „fork“, ale radikálně přepracovaný potomek LMDB — transakční vestavěný DBMS třídy „klíč–hodnota“ založený na strom B+ без proaktivní protokolování, který umožňuje vícevláknovým procesům pracovat konkurenceschopně a efektivně s lokálně sdílenou (nesíťovou) databází bez dedikovaného serveru. libmdbx zásadně rozšiřuje schopnosti svého předka a zároveň eliminovat nebo zmírnit nevýhody. Zároveň je podle vývojářů libmdbx o něco rychlejší a výrazně spolehlivější než LMDB.
libmdbx navrhuje ACID, přísná serializace změn a neblokující čtení s lineárním škálováním napříč jádry CPU. Výsledky testování výkonu (odesílání požadavků paralelního čtení/hledání ve vláknech 1-2-4-8 na CPU i7-4600U se 2 fyzickými jádry v režimu 4vlákna HyperThread):
Nejdůležitější rozdíly mezi MDBX a LMDB:
Větší pozornost je v zásadě věnována kvalitě kódu, konzistenci API, testování a automatickým kontrolám.
Výrazně větší kontrola během provozu, od kontroly parametrů až po interní audit databázových struktur.
Automatická kompaktifikace a automatická správa velikosti databáze.
Jediný databázový formát pro 32bitové a 64bitové sestavy.
Odhad objemů vzorků podle rozsahů (odhad dotazu na rozsah).
Podpora dvakrát delších kláves a uživatelsky volitelná velikost stránky databáze.
Nástroj pro kontrolu integrity struktury databáze s některými možnostmi obnovy.
Hlavní inovace a vylepšení po předchozí zprávy se zavedením verze 0.5 v lednu 2020:
Pro rychlou podporu a odpovědi na otázky byl vytvořen otevřený systém. Skupina telegramů.
Bylo odstraněno více než desítka chyb a nedostatků (viz. protokol změn).
Bylo opraveno mnoho překlepů a pravopisných chyb a byla provedena řada kosmetických vylepšení.
Vestavěná dokumentace ve formátu Doxygen a automatické generování Online dokumentace.
Je zajištěno automatické generování archivů se sloučenými zdrojovými texty.
Přidána podpora pro přípravu transakcí a kurzorů, uživatelských kontextů pro transakce a kurzory.
Byly implementovány další metody pro řízení referenční integrity ve snímcích B+tree MVCC.
Přidána podpora pro kontrolu MVCC snímku databáze, přístupná přes libovolnou meta stránku s možností přepnutí na obnovu.
Implementována podpora opětovného otevření databáze z jednoho procesu pro účely testování atp.
Implementováno automatické zpracování volby MDBX_NOSUBDIR při otevírání databáze.
Přidány funkce pro generování celočíselných klíčů z hodnot s plovoucí desetinnou čárkou a JavaScript „univerzálních“ čísel.
Celkem bylo provedeno 430 změn týkajících se 93 souborů, bylo přidáno více než 25 tisíc řádků, více než 8.5 tisíce řádků bylo smazáno.
Následný vývoj libmdbx se zaměří na finální C++ API, další stabilizaci základního kódu, zlepšení použitelnosti knihovny a balení pro populární linuxové distribuce. Mezi navrhovanými vylepšeními stojí za zmínku podpora klíčů ve formátu MessagePack.