Vydanie kompaktnej zabudovanej DBMS libmdbx 0.9.1

Vydaná verzia 0.9.1 knižnice libmdbx (MDBX) s implementáciou vysoko výkonej, kompaktnej zabudovanej databázy typu kľúč-hodnota. Kód libmdbx sa distribuuje pod licenciou OpenLDAP Public License.

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

Knižnica libmdbx nie je iba „forkom“, ale zásadne prepracovaným potomkom LMDB — transakčnej zabudovanej DBMS typu „kľúč-hodnota“ založenej na B+ strome bez predbežného protokolovania, 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 rozšiřuje 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 ACID, 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):

Vydanie kompaktnej zabudovanej DBMS libmdbx 0.9.1

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 predchádzajúcej správe s predstavením verzie 0.5 v januári 2020:

  • Pre okamžitú podporu a odpovede na otázky bola vytvorená otvorená skupina na Telegrame.
  • Opravených viac ako tucet chýb a nedostatkov (pozri. záznam zmien).
  • Opravená množstvo preklepov a gramatických chýb, viaceré kozmetické vylepšenia.
  • Rozšírené testovacie scenáre.
  • Realizovaná podpora iOS, Android, buildroot, Musl, uClibc, WSL1 a Wine.
  • Bola predstavená predbežná verzia C++ API v jednom hlavičkovom súbore.
  • Bola vypracovaná integrovaná dokumentácia vo formáte Doxygen a automatická generácia Online dokumentácie.
  • 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 MessagePack.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster