Mushure memakore mashanu ebudiriro, wechipiri libmdbx 1.0 kuburitsa mumiriri akaburitswa

Inowanikwa yekuyedza mumiriri wechipiri wekuburitswa kweraibhurari libmdbx nekushandiswa kwepamusoro-kushanda, compact embedded key-value database. Iyo yazvino vhezheni (0.5) ndeyekuburitswa kwehunyanzvi, inoratidza kupedzwa kwechero gadziridzo uye shanduko kuenda kuchikamu chekuyedzwa kweveruzhinji kwekupedzisira uye kudzikamiswa, nekuzotevera kuumbwa kwekutanga kuzere kuburitswa kweraibhurari. libmdbx kodhi inoparadzirwa ne ane rezinesi pasi peOpenLDAP Public License.

Raibhurari yeMDBX iforogo yakagadziridzwa zvakanyanya kubva LMDB - transaction yakamisikidzwa DBMS ye "kiyi-kukosha" kirasi yakavakirwa pa muti B+ kunze proactive matanda, iyo inobvumira maitiro e-multi-threaded kuti ashande nemakwikwi uye anobudirira ane database yakagovaniswa (kwete network). Nekudaro, MDBX inokurumidza uye yakavimbika kupfuura LMDB, uye panguva imwechete inochengeta zvese zvakakosha zvemadzitateguru ayo, senge. ACID uye isiri-kuvhara inoverenga ine mutsara kuyera mukati meCPU cores.

Misiyano yakakosha pakati peMDBX neLMDB:

  • 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 kwemavhoriyamu emuenzaniso nemhando (range query estimation).
  • Tsigiro yemakiyi akakura zvakapetwa kaviri sepancake uye mushandisi-selectable database peji saizi.

Iyo libmdbx kuburitswa mumiriri ndiyo mhedzisiro yesarudzo yakaitwa muna Nyamavhuvhu 2019 yekuparadzanisa iyo MDBX neMithrilDB mapurojekiti. Panguva imwecheteyo, libmdbx yakafunga kubvisa (rational) chikwereti chepamusoro chehunyanzvi uye kudzikamisa raibhurari. Muchokwadi, 2-3 kakawanda zvakaitwa munzira yakatarwa kupfuura yaifungidzirwa uye yakarongwa pakutanga:

  • Tsigiro yeMacOS 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 yeCoverity Static Analyzer yambiro, nezvimwe zvakabviswa.
  • Update API tsananguro.
  • Kubatanidza (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.
  • Yakagadziridzwa yemukati yekuronga algorithm (inosvika 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 Apache 2.0 rezinesi, kwete OpenLDAP Public License).
  • Iyo kupatsanurwa inodzivirira nyonganiso inogona kuitika, inosuma imwe chokwadi uye inovimbisa yakazvimirira nzira yemapurojekiti.

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 midhiya: HDD, SSD uye isina-inotenderera ndangariro.
  • Nzira dzakanakisisa dze "valuable" uye "low-value", ye "inopisa", "inodziya" uye "inotonhora" data.
  • Uchishandisa muti weMerkle kutarisa kuvimbika kwe database.
  • Kusarudzika kushandiswa kweWAL uye zvakanyanya kuvandudza mashandiro mukunyora-yakanyanya mamiriro ane data kuvimbika vimbiso.
  • Simbe kubata-up kuisa data kumadhisiki.

Source: opennet.ru

Voeg