Libmdbx v1.0 teine kandidaat pÀrast viit aastat arendust.

Raamatukogu libmdbx on oluline tĂ€iustatud jĂ€rglane LMDB — ÀÀrmiselt kĂ”rge jĂ”udlusega, kompaktselt integreeritud vĂ”tme-vÀÀrtuse andmebaas.
Praegune versioon v0.5 on tehniline versioon, mis tĂ€histab kĂ”ikide tĂ€iustuste lĂ”petamist ja ĂŒleminekut avalikule lĂ”pptestimise ja stabiliseerimise faasile, millele jĂ€rgneb esimese tĂ€isversiooni loomine raamatukogust.

LMDB on tuntud tehingute lĂ€bi viiva sisseehitatud andmebaasi sĂŒsteem „vĂ”ti-vÀÀrtus“, mis pĂ”hineb B+ puul ilma ennustaval logimisel, mis vĂ”imaldab paljudel samal ajal töötavatel protsessidel tĂ”husalt ja konkurentsivĂ”imeliselt suhelda lokaalset jagatud (mitte vĂ”rgu) andmebaasiga. Sellegipoolest on MDBX kiirem ja usaldusvÀÀrsem kui LMDB, samas kui libmdbx sĂ€ilitab kĂ”ik oma esivanema olulised omadused, nagu ACID ja blokeerimata lugemine, millel on lineaarne skaleerimine CPU tuumade kaupa, lisades samas mitmeid uusi funktsioone.

libmdbx erinevuste ja tĂ€iustuste kirjeldamine vĂ”rreldes LMDB-ga vÀÀrib eraldi artiklit (kavandatud avaldamiseks „HabrĂ©â€œ ja „Mediumis“). Siin on sobilik mainida olulisimaid ja mĂ€rgatavaid:

  • 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 mahu hindamine vahemike kaupa (vahemiku pĂ€ringute hindamine).
  • Toetatakse vĂ”tmeid kahekordse suurusega ja kasutaja valitud andmebaasi lehe suurusega.

VÀlja antud libmdbx kandidaadiversioon on tulemuseks otsusele (vt allpool) MDBX ja MithrilDB projektide eraldamise kohta 2019. aasta augustis. Samal ajal otsustati libmdbx-s kÔrvaldada (ratsionaalne) maksimaalne tehniline vÔlg ja stabiliseerida raamatukogu. Tegelikult on selle suuna suunas tehtud 2-3 korda rohkem, kui algselt hinnati ja plaaniti:

  • On rakendatud tugi Mac OS ja „teise taseme“ platvormide jaoks: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX ja HP-UX toe lisamine on vĂ”imalik vajadusel.
  • Koodi sanitiseerimine Undefined Behavior Sanitizeri ja Address Sanitizeri abil, eemaldades kĂ”ik hoiatused koos -Wpedanticiga, kĂ”ik Coverity statiilsed analĂŒsaatori hoiatused jne.
  • Ajakohastamine API kirjeldus.
  • Algse koodi koondamine mugavuse saavutamiseks.
  • CMake toetamine.
  • Toetab sisemist tehingute korrutamist.
  • Bootid'i kasutamine operatsioonisĂŒsteemi taaskĂ€ivitamise (andmebaasi rĂ€pase seiskamise) tuvastamiseks.
  • Pidev uuendatud/vanade lehtede arvestus 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 kiiremini qsort() ja kuni 30% kiiremini 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 mitte-lokaalsete failisĂŒsteemide (NFS, Samba jne) ĂŒle, et vĂ€ltida andmebaasi kahjustumist 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 lisentsiga Apache 2.0, mitte OpenLDAP Foundation).
  • Eraldamine vĂ”imaldab vĂ€ltida vĂ”imalikke segadusi, suurendada selguse taset ja tagada projektide arenguteed sĂ”ltumatust.

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:

  • tugi andmebaasi paigutamiseks mitmele erinevale kandjale: HDD, SSD ja mitte-volatile mĂ€lule.
  • optimaalsed strateegiad „hindamatute“ ja „vĂ€hevÀÀrtuslike“, „kuumade“, „soojade“ ja „kĂŒlmade“ andmete jaoks.
  • Merkle puu kasutamine andmebaasi terviklikkuse kontrollimiseks.
  • valikuline WAL kasutamine ja oluliselt kĂ”rgem tootlikkus intensiivsete kirjutamisstsenaariumide korral ning andmete terviklikkuse tagamine.
  • laiskijĂ€rgne andmete fikseerimine ketastel.

Allikas: linux.org.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster