verzia 0.9.1 knižnice (MDBX) s implementáciou vysoko výkonej, kompaktnej zabudovanej databázy typu kľúč-hodnota. Kód libmdbx sa distribuuje pod licenciou .
Aktuálna verzia je kompromisom medzi zámerom vydať dlhodobo stabilnú verziu 1.0 s plnou podporou C++ a nechcením odkladať vydania kvôli nepripravenosti na zamrazenie nového C++ API. Predložené vydanie je výsledkom 9 mesiacov práce zameranej na stabilizáciu knižnice a zvýšenie jej použiteľnosti, a zahŕňa predbežnú verziu .
Knižnica libmdbx nie je iba „forkom“, ale zásadne prepracovaným potomkom — transakčnej zabudovanej DBMS typu „kľúč-hodnota“ založenej na bez , ktorá umožňuje viacerým procesom konkurentne a efektívne pracovať s lokálne zdieľanou (ne sieťovou) DB bez vyhradeného serverového procesu. Libmdbx principiálne zachováva možnosti svojho predchodcu, pričom odstráni alebo zmierni nevýhody. Podľa presvedčenia vývojárov je libmdbx o niečo rýchlejší a podstatne spoľahlivejší ako LMDB.
libmdbx ponúka , prísnu serializáciu zmien a nebloķujúce čítanie s lineárnym škálovaním na CPU jadrá. Výsledky testovania výkonu (odosielanie paralelných požiadaviek na čítanie/hľadanie v 1-2-4-8 vláknach na CPU i7-4600U s 2 fyzickými jadrami v režime 4 vlákien HyperThread):
Najdôležitejšie rozdiely MDBX vo vzťahu k LMDB:
- Zásadne sa viac pozornosti venuje kvalite kódu, „nepadavosti“ API, testovaniu a automatickým kontrolám.
- Značne viac kontroly počas prevádzky, počnúc kontrolou parametrov, až po vnútorný audit štruktúr databázy.
- Automatická kompakcia a automatické riadenie veľkosti databázy.
- Jednotný formát databázy pre 32-bitové a 64-bitové zostavy.
- Hodnotenie objemu výberov podľa rozsahov (range query estimation).
- Podpora kľúčov s dvojnásobnou dĺžkou a užívateľom volená veľkosť stránky DB.
- Nástroj na kontrolu integrity štruktúry DB s niektorými možnosťami obnovy.
Hlavné novinky a vylepšenia po s predstavením verzie 0.5 v januári 2020:
- Pre okamžitú podporu a odpovede na otázky bola vytvorená otvorená .
- Opravených viac ako tucet chýb a nedostatkov (pozri. ).
- Opravená množstvo preklepov a gramatických chýb, viaceré kozmetické vylepšenia.
- Rozšírené testovacie scenáre.
- Realizovaná podpora iOS, Android, , , , a .
- Bola predstavená predbežná verzia C++ API v .
- Bola vypracovaná integrovaná dokumentácia vo formáte Doxygen a automatická generácia .
- Bola zabezpečená automatická tvorba archívov so zmiešanými zdrojovými textami.
- Pridaná podpora pre prípravu transakcií a kurzorov, používateľských kontextov pre transakcie a kurzory.
- Boli implementované ďalšie metódy kontroly referenčnej integrity v MVCC-snímkach B+tree.
- Pridaná podpora na kontrolu MVCC-snímku DB, dostupného cez akúkoľvek meta-stránku s možnosťou prepínania na obnovenie.
- Bola implementovaná podpora pre opätovné otvorenie DB z jedného procesu na účely testovania atď.
- Bola implementovaná automatická správa možnosti MDBX_NOSUBDIR pri otváraní DB.
- Boli pridané funkcie na vytváranie celočíselných kľúčov z hodnôt s plávajúcou desatinnou čiarkou a "univerzálnych" čísel JavaScript.
- Celkovo bolo uskutočnených 430 zmien, ktoré sa týkali 93 súborov, pridalo sa viac ako 25 000 riadkov, viac ako 8 500 riadkov bolo odstránených.
Ďalší vývoj libmdbx sa zameria na formovanie finálneho C++ API, ďalšiu stabilizáciu základného kódu, zvýšenie používateľskej prístupnosti knižnice a tiež na formovanie balíčkov pre populárne distribúcie Linuxu. Medzi plánovanými vylepšeniami stojí za zmienku podpora kľúčov vo formáte .
Zdroj: opennet.ru
