Pärast viit aastat arendamist on avaldatud libmdbx 1.0 teine kandidaat versioon.

Saadaval teise kandidaadi testimiseks raamatukogu väljaannetesse libmdbx rakendusega kõrge jõudlusega, kompaktne sisseehitatud võtmeväärtuse andmebaas. Praegune versioon (0.5) on tehniline väljaanne, mis tähistab viimaste täienduste lõpetamist ja üleminekut avaliku lõppkatse ja stabiliseerimise faasi, järgnevate täieliku raamatukogu väljaande loomisega. Kood libmdbx GNU Üldine Avaliku litsentsi alusel. OpenLDAP Public License'i litsentsi all.

MDBX raamatukogu on oluliselt ümber töötatud haru LMDB — tehinguline sisselogitav andmebaasi haldussüsteem, mis põhineb B+ puul ilma ennustaval logimisel, mis võimaldab mitme niidi protsessidel konkurentsivõimeliselt ja tõhusalt töötada kohapealselt jagatud (mitte võrgupõhise) andmebaasiga. MDBX on omakorda kiirem ja usaldusväärsem kui LMDB ning säilitab kõik oma esivanema peamised omadused, nagu ACID ja blokeerimata lugemine lineaarse skaleerimisega CPU tuumade kohaselt.

Kõige olulisemad erinevused MDBX ja LMDB vahel:

  • Oluliselt rohkem tähelepanu pööratakse koodi kvaliteedile, testimisele ja automatiseeritud kontrollidele.
  • Oluliselt rohkem kontrolli töö käigus, alates parameetrite kontrollimisest kuni andmebaasi struktuuride sisemise auditini.
  • Automaatne kompaktimine ja automaatne andmebaasi suuruse juhtimine.
  • Ühtne andmebaasi formaat 32-bitiste ja 64-bitiste kogumiks.
  • Valimite mahtude hindamine vahemike järgi (range query estimation).
  • Toetatakse võtmeid kahekordse suurusega ja kasutaja valitud andmebaasi lehe suurusega.

Välja antud libmdbx kandidaat on tulemus 2019. aasta augustis tehtud otsusest eraldada MDBX ja MithrilDB projektid. Libmdbx-s otsustati kõrvaldada (ratsionaalne) maksimaalne tehniline võlg ja stabiliseerida teek. Tegelikult on antud suunal tehtud 2-3 korda rohkem, kui algselt hinnatud ja plaanitud.

  • On rakendatud tugi macOS-ile ja "teise põlvkonna" platvormidele: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX-i ja HP-UX-i tugi saab vajadusel lisada.
  • Koodi sanitiseerimine Undefined Behavior Sanitizeri ja Address Sanitizeri abil on viidud läbi, kõrvaldades kõik hoiatused koostamisel "-Wpedantic"-iga, kõik hoiatused Coverity Static Analyzerist jne.
  • Ajakohastamine API kirjeldus.
  • Allika koodi liitmine (amalgameerimine) mugavuse tagamiseks.
  • CMake toetamine.
  • Toetab sisemist tehingute korrutamist.
  • Bootid'i kasutamine operatsioonisüsteemi taaskäivitamise (andmebaasi räpase seiskamise) tuvastamiseks.
  • Updates/vanade lehtede koguharv ja laiendatud teave tehingute kohta.
  • MDBX_ACCEDE valik olemasoleva andmebaasi avamiseks ühilduvas režiimis.
  • Kasutamine OFD- lukustused kui need on kergesti kättesaadavad.
  • Kuuma varukoopia tegemine pipe'i kaudu.
  • Spetsialiseeritud optimeeritud sisemise sortimise algoritm (kuni 2–3 korda kiirem kui «qsort()» ja kuni 30% kiirem kui «std::sort()»).
  • Suurenetud maksimaalne võtme pikkus.
  • Automaatne read ahead juhtimine (andmebaasi faili vahemälustrateegia).
  • Aggressiivsem ja kiirem auto-kompaktimisprotsess.
  • Optimeeritud B+ puu lehtede ühendamise strateegia.
  • Kontroll mittesündmuste failisüsteemide (NFS, Samba jne) üle, et vältida andmebaasi kahjustamist vale kasutamise korral.
  • Testide kogumit on laiendatud.

Libmdbx 'järgmise' versiooni arendamine jätkub eraldi projekti raames. MithrilDB, samas kui 'praeguse' MDBX versiooni arendussuund on suunatud funktsioonipaketi külmutamisele ja stabiliseerimisele. See otsus on tehtud kolmel põhjusel:

  • Täielik ühilduvusetus: kõigi kavandatud funktsioonide rakendamiseks MithrilDB-s on vajalik erinev (ühilduvusetu) andmebaasi failivorming ja erinev (ühilduvusetu) API.
  • Uus lähtekood: MithrilDB lähtekoodi jaoks on tagatud litsentsist sõltumatus LMDB-st ning projekt plaanitakse avaldada teise litsentsi (heakskiidetud OSI Apache 2.0 litsentsi, mitte OpenLDAPi avaliku litsentsi alusel).
  • Jagamine aitab vältida võimalikke segadusi, tuua rohkem kindlust ja tagada projektide arenguteedade iseseisvust.

MithrilDB, nagu ka MDBX, põhineb samuti B+ puul ja eristub äärmiselt kõrge jõudluse poolest, samas elimineerides MDBX ja LMDB põhimõttelised puudused. Eelkõige kaob probleem 'pikad lugemised', mis ilmneb andmebaasi 'paisumise' tõttu, kuna jäätme töötlemine takistab pikaajalisi lugemise tehinguid. Uute võimaluste hulka kuuluvad MithrilDB puhul:

  • Andmebaasi toetamine mitme erineva salvestusmedia peal: HDD, SSD ja püsimälu.
  • Optimaalsed strateegiad 'väärtuslike' ja 'väheväärtuslike', 'kuumade', 'soojade' ja 'külmade' andmete jaoks.
  • Merkle puu kasutamine andmebaasi terviklikkuse kontrollimiseks.
  • Valikuline WAL kasutamine ja oluliselt kõrgem jõudlus intensiivse kirjutamise stsenaariumides koos andmete terviklikkuse garantiidega.
  • Lainevärske andmete fikseerimine ketastes.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster