verze 0.9.1 knihovny (MDBX) s implementací vysoce výkonné, kompaktní vestavěné databáze typu klíč-hodnota. Kód libmdbx je distribuován pod licencí .
Aktuální verze představuje kompromis mezi záměrem vydat dlouhodobě stabilní verzi 1.0 s plnou podporou C++ a neochotou odkládat vydání z důvodu nepřipravenosti na zamrznutí nového C++ API. Předložené vydání je výsledkem 9 měsíců práce zaměřené na stabilizaci knihovny a zvýšení její použitelnosti, a také zahrnuje předběžnou verzi .
Knihovna libmdbx není jen 'fork', ale radikálně přepracovaný potomek — transakční vestavěná DBMS typu klíč-hodnota na základě bez , který umožňuje vícerozměrným procesům konkurentně a efektivně pracovat s lokálně sdílenou (ne síťovou) DB bez dedikovaného serverového procesu. Libmdbx zásadně zlepšuje možnosti svého předchůdce, zároveň odstraňuje nebo zmírňuje jeho nedostatky. Podle názoru vývojářů je libmdbx mírně rychlejší a značně spolehlivější než LMDB.
libmdbx nabízí , přísnou serializaci změn a neblokující čtení s lineárním škálováním podle CPU jader. Výsledky testování výkonu (odesílání paralelních požadavků na čtení/hledání v 1-2-4-8 vláknech na CPU i7-4600U se 2 fyzickými jádry v režimu 4 vláken HyperThread):
Nejdůležitější rozdíly MDBX ve srovnání s LMDB:
- Principiálně větší důraz na kvalitu kódu, 'nespadavost' API, testování a automatickou kontrolu.
- Podstatně více kontroly během práce, počínaje kontrolou parametrů, konče interním auditem struktur databáze.
- Automatická kompakce a automatické řízení velikosti databáze.
- Jednotný formát databáze pro 32-bitové a 64-bitové verze.
- Odhad objemu výběrů podle rozsahů (estimation query range).
- Podpora klíčů s dvojnásobnou délkou a uživatelsky zvolená velikost stránky databáze.
- Nástroj pro kontrolu integrity struktury databáze s některými možnostmi obnovení.
Hlavní novinky a vylepšení po s uvedením verze 0.5 v lednu 2020:
- Pro operativní podporu a odpovědi na dotazy byla vytvořena otevřená .
- Opraveno více než deset chyb a nedostatků (viz. ).
- Opraveno množství překlepů a pravopisných chyb, provedeny různé kosmetické úpravy.
- Rozšířeny testovací scénáře.
- Byla zavedena podpora iOS, Android, , , , a .
- Představena předběžná verze C++ API v .
- Zpracována integrovaná dokumentace ve formátu Doxygen a automatické generování .
- Zajištěno automatické vytváření archivů s amalgamovanými zdrojovými texty.
- Přidána podpora pro přípravu transakcí a kurzorů, uživatelských kontextů pro transakce a kurzory.
- Implementovány další metody kontroly referenční integrity v MVCC-snímcích B+tree.
- Přidána podpora pro kontrolu MVCC-snímku DB, dostupného přes jakoukoli meta-stránku s možností přepnutí pro obnovu.
- Byla zavedena podpora opětovného otevírání DB z jednoho procesu pro účely testování atd.
- Byla zavedena automatická správa volby MDBX_NOSUBDIR při otevírání DB.
- Přidány funkce generování celých klíčů z hodnot s plovoucí desetinnou čárkou a 'univerzálních' čísel JavaScriptu.
- Celkem bylo provedeno 430 změn, které se dotkly 93 souborů, přidáno více než 25 tisíc řádků, více než 8,5 tisíc řádků odstraněno.
Další vývoj libmdbx se zaměří na formování finálního C++ API, další stabilizaci základního kódu, zlepšení použitelnosti knihovny, a také na vytváření balíčků pro populární distribuce Linuxu. Mezi plánovanými úpravami je třeba zmínit podporu klíčů ve formátu .
Zdroj: opennet.ru
