Teine kandidaat libmdbx v1.0 vÀljaandmiseks pÀrast viit aastat arendust.

Raamatukogu libmdbx on oluliselt ĂŒmber töötatud LMDB jĂ€reltulija — ÀÀrmiselt kĂ”rge jĂ”udlusega, kompaktne sisseehitatud vĂ”tme-vÀÀrtuse andmebaas.
Praegune versioon v0.5 on tehniline vĂ€ljaanne, mis tĂ€histab kĂ”igi tĂ€ienduste lĂ”petamist ja ĂŒleminekut avaliku lĂ”ppkatsetamise ja stabiliseerimise faasi, millele jĂ€rgneb esimese tĂ€ieliku vĂ€ljaande koostamine.

LMDB on ĂŒsna tuntud tehingute sisseehitatud andmebaas, mis pĂ”hineb B+ puul ilma eelregistreerimise logimisega, mis vĂ”imaldab mitme lĂ”ime protsessidel konkurentsiti ja ÀÀrmiselt tĂ”husalt töötada kohaliku jagatud (mitte vĂ”rgustiku) andmebaasiga. Samuti on MDBX kiirem ja usaldusvÀÀrsem kui LMDB, sĂ€ilitades samas kĂ”ik oma esivanema vĂ”tmeomadused, nagu ACID ja blokeerimata lugemine koos lineaarse skaleerimise CPU tuumade jĂ€rgi, ning lisab mitu uut.

libmdbx erinevuste ja tÀiustuste kirjeldus LMDB-ga vÔrreldes vÀÀrib eraldi artiklit (plaaneeritakse avaldamist 'Habr'e' ja 'Medium'is). Siin on kohane mainida kÔige olulisemaid ja silmapaistvamaid:

  • Oluliselt rohkem tĂ€helepanu pööratakse koodi kvaliteedile, testimisele ja automaatsetele kontrollidele.
  • Oluliselt rohkem kontrolli töö kĂ€igus, alustades parameetrite kontrollimisest kuni andmebaasi struktuuride sisemiste audititeni.
  • Automaatne kompaktimine ja automaatne andmebaasi suuruse haldamine.
  • Üksne andmebaasi formaat 32-bitiste ja 64-bitiste kogumite jaoks.
  • KĂŒsimuste mahtude hindamine vahemike pĂ”hjal (vahemiku pĂ€rimise hindamine).
  • Toetab vĂ”tmeid, mille suurus on kahekordne ja kasutaja mÀÀratud andmebaasi lehekĂŒlje suurus.

VÀlja antud libmdbx kandidaatversioon on tulemuseks otsusele (vt allpool) eraldada MDBX ja MithrilDB projektid augustis 2019. Sellega seoses otsustati libmdbx-s kÔrvaldada (mÔistlik) maksimaalne tehniline vÔlg ja stabiliseerida teeki. Tegelikult on eelnevas suunas tehtud 2-3 korda rohkem, kui algselt hinnati ja plaaniti:

  • On rakendatud Mac OS ja teise astme platvormide toetamine: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX ja HP-UX toetust vĂ”ib vajadusel lisada.
  • Koodi sanitiseerimine on lĂ€bi viidud Undefined Behavior Sanitizeri ja Address Sanitizeri abil, kĂ”ik hoiatused, mis tekkisid kogumisel -Wpedantic'i seadistusega, on kĂ”rvaldatud, samuti kĂ”ik hoiatused Coverity Static Analyzer'ilt jne.
  • Aktualiseerimine API kirjeldus.
  • Algkoodi amalgameerimine mugavuse huvides integreerimiseks.
  • CMake tugi.
  • Sisseehitatud tehingute tugi.
  • Bootid'i kasutamine operatsioonisĂŒsteemi taaskĂ€ivitamise fakti mÀÀratlemiseks (andmebaasi 'rĂ€pane' seiskamine).
  • Uuendatud/vanade lehtede lĂ€bimĂ”eldud arvestus ja laiem teave tehingute kohta.
  • MDBX_ACCEDE optsioon avatud andmebaasi ĂŒhendamiseks ĂŒhilduvas reĆŸiimis.
  • Kasutamine OFD-blokeeringud kui need on saadaval.
  • Kuum varukoopia pipe'i kaudu.
  • Spetsialiseeritud optimeeritud algoritm sisemisele sorteerimisele (kuni 2-3 korda kiirem kui qsort() ja kuni 30% kiirem kui std::sort()).
  • Maksimaalne vĂ”tme pikkus on suurenenud.
  • Automaatne read ahead juhtimine (andmebaasi faili mĂ€lu vahemĂ€lu strateegia).
  • Agresiivsem ja kiirem automaatne kompaktimine.
  • Optimiseeritud B+ puu lehtede sulandamise strateegia.
  • Kontroll mitte-lokaalsete failisĂŒsteemide (NFS, Samba jne) ĂŒle, et vĂ€ltida andmebaasi kahjustamist vale kasutamise korral.
  • Testide komplekt on laiendatud.

«JĂ€rgmise» versiooni libmdbx arendamine jĂ€tkub eraldi projekti raames MithrilDB, samal ajal kui „praeguse“ MDBX versiooni arenduste suund on vĂ”imaluste komplekti kĂŒlmutamine ja stabiliseerimine. See otsus on tehtud kolme pĂ”hjuse tĂ”ttu:

  • TĂ€ielik ĂŒhilduvus: kĂ”ikide MithrilDB plaanitud vĂ”imaluste rakendamiseks on vajalik teine (ĂŒhilduvusetu) andmebaasi failide formaat ja teine (ĂŒhilduvusetu) API.
  • Uus algkood: MithrilDB algkood on tagatud litsentsi iseseisvuse kaudu LMDB-st, ning projekt on kavas avaldada teistsuguse litsentsi (heakskiidetud OSI litsents Apache 2.0, mitte OpenLDAP Foundation).
  • Eraldamine vĂ”imaldab vĂ€ltida potentsiaalset segadust, tuua selgust ja tagada projektide arenguteed sĂ”ltumatuse.

MithrilDB, nagu MDBX, tugineb samuti B+ puule ja on samuti ÀÀrmiselt kĂ”rge jĂ”udlusega, kĂ”rvaldadest samas rida pĂ”hilisi puudusi MDBX ja LMDB. Eriti kĂ”rvaldatakse probleem „pikkadest lugemistest“, mis avaldub andmebaasi „paisumise“ kaudu, kuna prĂŒgikĂ€itlemine on blokeeritud pikkade lugemisettevĂ”tetega. Uute vĂ”imaluste seas tuleks MithrilDB puhul esile tuua:

  • toetada andmebaasi majutust mitmes erinevas andmekandjas: HDD, SSD ja energiat mitte sĂ”ltuv mĂ€lu.
  • optimaalsed strateegiad «vÀÀrtuslike» ja «vĂ€hevÀÀrtuslike», «kuumade», «soe» ja «kĂŒlmade» andmete jaoks.
  • Merkle puu kasutamine andmebaasi terviklikkuse kontrollimiseks.
  • valikuline WAL kasutamine ja oluliselt kĂ”rgem tootlikkus intensiivsete kirjutamisskenaaride puhul koos andmete terviklikkuse garantii.
  • laisk jĂ€rele jĂ”udmine andmete fikseerimisel kettale.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster