Izdaja kompaktnega vdelanega DBMS libmdbx 0.9.1

Izpuščen različica knjižnice 0.9.1 libmdbx (MDBX) implementacijo visoko zmogljive, kompaktne vdelane baze podatkov ključ-vrednost. Koda libmdbx se distribuira pod licenco Javna licenca OpenLDAP.

Trenutna različica je kompromis med namero izdati dolgoročno stabilno različico 1.0 s polno podporo za C++ in nepripravljenostjo do odlašanja izdaj zaradi nepripravljenosti na zamrznitev novega API-ja C++. Predstavljena izdaja je rezultat 9 mesecev dela, namenjenega stabilizaciji knjižnice in izboljšanju njene uporabnosti, vključuje pa tudi preliminarno različico C++ API.

Knjižnica libmdbx ni le »razcep«, ampak radikalno preoblikovan potomec LMDB — transakcijski vgrajeni DBMS razreda "ključ-vrednost", ki temelji na drevo B+ brez proaktivno beleženje, ki večnitnim procesom omogoča konkurenčno in učinkovito delo z lokalno deljeno (neomrežno) bazo podatkov brez namenskega strežniškega procesa. libmdbx v osnovi širi zmogljivosti svojega prednika, hkrati pa odpravlja ali ublaži slabosti. Hkrati je po mnenju razvijalcev libmdbx nekoliko hitrejši in bistveno bolj zanesljiv kot LMDB.

libmdbx predlaga KISLINA, strogo serializacijo sprememb in branje brez blokiranja z linearnim skaliranjem po jedrih CPU. Rezultati testiranja zmogljivosti (pošiljanje vzporednih zahtev za branje/iskanje v niti 1-2-4-8 na CPE i7-4600U z 2 fizičnima jedroma v 4-nitnem načinu HyperThread):

Izdaja kompaktnega vdelanega DBMS libmdbx 0.9.1

Najpomembnejše razlike med MDBX in LMDB:

  • V bistvu je več pozornosti namenjene kakovosti kode, doslednosti API-ja, testiranju in samodejnim preverjanjem.
  • Bistveno več nadzora med delovanjem, od preverjanja parametrov do notranje revizije struktur baze podatkov.
  • Samodejna kompaktizacija in samodejno upravljanje velikosti baze podatkov.
  • En sam format zbirke podatkov za 32-bitne in 64-bitne sklope.
  • Ocena vzorčnih količin po razponih (poizvedbena ocena razpona).
  • Podpora za dvakrat daljše ključe in velikost strani baze podatkov, ki jo lahko izbere uporabnik.
  • Pripomoček za preverjanje celovitosti strukture baze podatkov z nekaterimi zmožnostmi obnovitve.

Glavne novosti in izboljšave po prejšnje novice z uvedbo različice 0.5 januarja 2020:

  • Izdelan je odprt sistem za hitro podporo in odgovore na vprašanja. Telegram skupina.
  • Odpravljenih je bilo več kot ducat napak in pomanjkljivosti (glej. dnevnik sprememb).
  • Popravljenih je bilo veliko tipkarskih in črkovalnih napak, izvedene so bile številne kozmetične izboljšave.
  • Testni scenariji so bili razširjeni.
  • Podpora za iOS, Android, buildroot, musl, uClibc, WSL1 и Vino.
  • Predogled API-ja C++ je bil izdan v ena glava datoteke.
  • Vgrajena dokumentacija v formatu Doxygen in samodejno generiranje Spletna dokumentacija.
  • Zagotovljeno je samodejno ustvarjanje arhivov z združenimi izvornimi besedili.
  • Dodana podpora za pripravo transakcij in kazalcev, uporabniških kontekstov za transakcije in kazalcev.
  • Implementirane so bile dodatne metode za nadzor referenčne celovitosti v posnetkih B+tree MVCC.
  • Dodana podpora za preverjanje posnetka baze podatkov MVCC, ki je dostopen prek katere koli meta strani z možnostjo preklopa za obnovitev.
  • Implementirana podpora za ponovno odpiranje baze podatkov iz enega procesa za namene testiranja itd.
  • Implementirana avtomatska obdelava opcije MDBX_NOSUBDIR pri odpiranju podatkovne baze.
  • Dodane funkcije za generiranje celih ključev iz vrednosti s plavajočo vejico in "univerzalnih" števil JavaScript.
  • Skupno je bilo narejenih 430 sprememb, ki so vplivale na 93 datotek, dodanih je bilo več kot 25 tisoč vrstic, več kot 8.5 tisoč vrstic je bilo izbrisanih.

Poznejši razvoj libmdbx se bo osredotočil na končni C++ API, nadaljnjo stabilizacijo osnovne kode, izboljšanje uporabnosti knjižnice in pakiranje za priljubljene distribucije Linuxa. Med predlaganimi izboljšavami je treba omeniti podporo za ključe v formatu MessagePack.

Vir: opennet.ru

Dodaj komentar