Vydání kompaktní embedded databázového systému libmdbx 0.9.1

Byla vydána verze 0.9.1 knihovny libmdbx (MDBX) s implementací vysoce výkonné, kompaktní vestavěné databáze typu klíč-hodnota. Kód libmdbx je distribuován pod licencí OpenLDAP Public License.

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 C++ API.

Knihovna libmdbx není jen 'fork', ale radikálně přepracovaný potomek LMDB — transakční vestavěná DBMS typu klíč-hodnota na základě B+ stromu bez v předstihu zapisující žurnální systém, 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ě rozšiřuje 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í ACID, 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):

Vydání kompaktní embedded databázového systému libmdbx 0.9.1

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 předchozí novince s uvedením verze 0.5 v lednu 2020:

  • Pro operativní podporu a odpovědi na dotazy byla vytvořena otevřená skupina na Telegramu.
  • Opraveno více než deset chyb a nedostatků (viz. protokol změn).
  • 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, buildroot, Musl, uClibc, WSL1 a Wine.
  • Představena předběžná verze C++ API v jednom hlavičkovém souboru.
  • Zpracována integrovaná dokumentace ve formátu Doxygen a automatické generování Online dokumentace.
  • 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 MessagePack.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster