Chechipiri kuburitsa mumiriri we libmdbx v1.0 mushure memakore mashanu ebudiriro.

raibhurari libmdbx chizvarwa chakagadziridzwa zvakanyanya cheLMDB - yakanyanya kukwirira-kuita, compact yakamisikidzwa kiyi-kukosha dhatabhesi.
Iyo yazvino vhezheni v0.5 ndeyekuburitswa kwehunyanzvi, inoratidza kupedzwa kwechero gadziridzo uye shanduko kune chikamu chekuyedzwa kweveruzhinji kwekupedzisira uye kudzikamiswa, nekuzotevera kuumbwa kwekutanga kuzere kuburitswa kweraibhurari.

LMDB inonyatso kuzivikanwa transactional embedded key-value DBMS yakavakirwa pa muti B+ kunze proactive matanda, iyo inobvumira kuwanda kwemaitiro akawanda-akaiswa tambo kuti ashande nemakwikwi uye zvakanyanya kunyatso shanda neiyo munharaunda yakagovaniswa (kwete network) dhatabhesi. Nekudaro, MDBX inokurumidza uye yakavimbika kupfuura LMDB, nepo libmdbx ichichengeta zvese zvakakosha zvemadzitateguru ayo, senge. ACID uye isiri-kuvhara inoverenga ine mutsara kuyera mukati meCPU cores, uye zvakare inowedzera akati wandei matsva.

Tsanangudzo yemusiyano uye kuvandudzwa kwe libmdbx inoenderana neLMDB inokodzera chinyorwa chakasiyana (chakarongwa kuburitswa paHabrΓ© uye Medium). Pano zvakakodzera kutaura zvakakosha uye zvinoonekwa:

  • Chaizvoizvo, kutariswa kwakawanda kunobhadharwa kumhando yekodhi, kuyedzwa uye otomatiki cheki.
  • Yakanyanya kudzora panguva yekushanda, kubva pakutarisa ma parameter kusvika kuongororo yemukati yezvimiro zve database.
  • Auto-compactification uye otomatiki dhatabhesi saizi manejimendi.
  • Imwe dhatabhesi fomati ye32-bit uye 64-bit maassemblies.
  • Kuyerwa kwesaizi yemuyedzo nemhando (range query estimation).
  • Tsigiro yemakiyi akakura zvakapetwa kaviri sepancake uye mushandisi-selectable database peji saizi.

Mumiriri we libmdbx kuburitswa mhedzisiro yesarudzo (ona pazasi) yekuparadzanisa mapurojekiti eMDBX neMithrilDB muna Nyamavhuvhu 2019. Panguva imwecheteyo, libmdbx yakasarudza kubvisa (rational) chikwereti chikuru chehunyanzvi uye kudzikamisa raibhurari. Muchokwadi, 2-3 kakawanda zvakaitwa munzira yakatarwa kupfuura yaifungidzirwa uye yakarongwa pakutanga:

  • Tsigiro yeMac OS uye yechipiri-tier mapuratifomu akaitwa: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX uye HP-UX rutsigiro runogona kuwedzerwa sezvinodiwa.
  • Iyo kodhi yakacheneswa uchishandisa Undefined Behavior Sanitizer uye Kero Sanitizer, yambiro dzese paunenge uchivaka ne -Wpedantic, yese Coverity Static Analyzer yambiro, nezvimwe zvakabviswa.
  • Update API tsananguro.
  • Kubatanidzwa kwekodhi kodhi kuti zvive nyore kuisa.
  • CIta rutsigiro.
  • Tsigiro yezvirongwa zvakatenderedzwa.
  • Uchishandisa bootid kuona kana OS yatangazve (yakasviba dhatabhesi kumira).
  • Kupera-kusvika-kumagumo kuverenga kwemapeji akagadziridzwa / ekare uye yakawedzera ruzivo rwekutengeserana.
  • Sarudzo MDBX_ACCEDE yekubatanidza kune yakatovhurwa dhatabhesi mune inowirirana modhi.
  • Shandisa OFD ichivharira kana iripo.
  • Hot backup mupombi.
  • Specialized optimized yemukati yekuronga algorithm (kusvika 2-3 nguva nekukurumidza kupfuura qsort () uye inosvika makumi matatu% nekukurumidza kupfuura std::sort ()).
  • Hurefu hwekiyi hwepamusoro hwawedzerwa.
  • Otomatiki kutonga kwekuverenga kumberi (database faira caching zano mundangariro).
  • Kuwedzera hukasha uye nekukurumidza otomatiki compactification.
  • Imwe nzira yakakwana yekubatanidza B+ muti mapeji.
  • Kudzora kweasiri emunharaunda faira masisitimu (NFS, Samba, nezvimwewo) kudzivirira kukuvara kwe database kana ikashandiswa zvisizvo.
  • Seti yebvunzo yakawedzerwa.

Kuvandudzwa kwe "inotevera" vhezheni ye libmdbx ichaenderera mberi sechirongwa chakasiyana MithrilDB, nepo vector yekuvandudza ye "current" vhezheni yeMDBX yakanangana nekuomesa iyo ficha seti uye kudzikamisa. Ichi chisarudzo chakaitwa nokuda kwezvikonzero zvitatu:

  • Hazvienderane zvachose: MithrilDB inoda rakasiyana (risingaenderane) dhatabhesi faira fomati uye yakasiyana (isingaenderani) API yekushandisa ese akarongwa maficha.
  • Nyowani kodhi kodhi: Iyo MithrilDB sosi kodhi yakaitwa rezinesi yakazvimirira kubva kuLMDB, uye chirongwa pachacho chakarongwa kuburitswa pasi perezinesi rakasiyana (rakatenderwa na. KANA KANA rezinesi Apache 2.0asi kwete OpenLDAP Foundation).
  • Iyo kupatsanurwa inodzivirira nyonganiso inogona kuitika, inopa chokwadi chakawanda, uye inova nechokwadi chekuti mapurojekiti ane nzira yakazvimirira yekuenda mberi.

MithrilDB, seMDBX, zvakare yakavakirwa pa muti B+ uye icharatidzawo kuita kwakanyanya kwepamusoro, uku ichibvisa zvakati wandei zvakakomba zveMDBX neLMDB. Kunyanya, dambudziko re "kureba kuverenga", iyo inozviratidza se "kuzvimba" kwedhesi nekuda kwekuti marara ekugadzirisa akavharwa nekutengesa kwenguva refu, achabviswa. Zvitsva zveMithrilDB zvinosanganisira:

  • tsigiro yekuisa dhatabhesi pane akati wandei heterogeneous media: HDD, SSD uye isina-inotenderera ndangariro.
  • nzira dzakakwana dze "valuable" uye "low-value", ye "inopisa", "inodziya" uye "inotonhora" data.
  • uchishandisa muti weMerkle kutarisa kuvimbika kwe database.
  • kushandisa sarudzo yeWAL uye yakanyanya kukwirira kuita mukunyora-yakanyanya mamiriro uye data kuvimbika vimbiso.
  • Simbe yekubata-up kugadzirisa kwe data pane disks.

Source: linux.org.ru

Voeg