Iyo Dragonfly purojekiti iri kugadzira inokurumidza kutsiva Redis uye Memcached

Yekutanga kuburitswa kweiyo Dragonfly in-memory caching system iripo, ichipa rutsigiro rweMemcached neRedis protocol, asi ichibvumira mibvunzo kuti iitwe nekuita kwakanyanya kwepamusoro uye kushomeka kwendangariro. Iyo sisitimu inoshandura data mukiyi / kukosha fomati uye inogona kushandiswa seyakareruka mhinduro yekumhanyisa basa renzvimbo dzakaremerwa, caching inononoka kubvunza kuDBMS uye data yepakati mu RAM. Iyo Dragonfly kodhi yakanyorwa muC/C++ uye inogoverwa pasi peBSL (Business Source License).

Rezinesi reBSL rakakurudzirwa nevakabatana navo MySQL seimwe nzira kune iyo Open Core modhi. Izvo zvakakosha zveBSL ndezvekuti iyo kodhi yekushanda kwepamusoro inotanga kuwanikwa kuti igadziriswe, asi kwenguva yakati inogona kushandiswa pasina muripo chete kana mamwe mamiriro akazadzikiswa, izvo zvinoda kutengwa kwerezinesi rekutengesa kunzvenga. Marezinesi ekuwedzera marezinesi epurojekiti yeDragonfly anoda kuti kodhi iendeswe kuApache 2.0 rezinesi chete muna Chikumi 1, 2027. Kusvika panguva ino, rezinesi rinobvumira kushandiswa kwekodhi chete kuti ive nechokwadi chekushanda kwemasevhisi ayo uye zvigadzirwa, asi inorambidza kushandiswa kwekugadzirwa kweakabhadharwa makore masevhisi anoita sekuwedzera kune Dragonfly.

Zvinoenderana nevagadziri uye vakaratidza bvunzo, Dragonfly inoti ndiyo inokurumidza ndangariro yekuchengetedza system. Kuenzaniswa neRedis, Dragonfly yakawana kuwedzera makumi maviri neshanu mukuita uye kuderedzwa katatu mukushandiswa kwendangariro kune yakajairika mabasa. Imwe Dragonfly server inogona kugadzirisa mamiriyoni ezvikumbiro pasekondi, somuenzaniso, muAmazon EC25 c2gn.6xlarge nharaunda zvaive zvichikwanisika kuwana kushanda kwemamiriyoni 16 ekukumbira kwesekondi.

Iyo Dragonfly purojekiti iri kugadzira inokurumidza kutsiva Redis uye Memcached

Mukuedza kuchengetedza 5 GB yedata, Dragonfly yaida 30% yakaderera ndangariro pane Redis. Paunenge uchigadzira snapshots ne "bgsave" murairo, ndangariro dzinowedzera, asi panguva dzepamusoro dzinoramba dzakapetwa katatu pane muRedis, uye snapshot kurekodha oparesheni pachayo inokurumidza zvakanyanya (mubvunzo, snapshot mu Dragonfly yakanyorwa mumakumi matatu. masekondi, nepo Redis - mumasekonzi makumi mana nemaviri).

Iyo Dragonfly purojekiti iri kugadzira inokurumidza kutsiva Redis uye Memcached

Kuita kwepamusoro kunowanikwa nekuda kwekuvakwa kwakaomeswa kwakawanda pasina kugovana zviwanikwa (kugoverana-hapana), izvo zvinoreva kuti shinda yega yega inopihwa yakaparadzana processor ine chikamu chayo che data, ichishanda isina mutexes uye spin makiyi. Kuve nechokwadi cheatomicity kana uchishanda nemakiyi akawanda, huremu hweVLL makiyi anoshandiswa. Kuti uchengetedze ruzivo mundangariro, iyo dashtable chimiro inoshandiswa, iyo inoshandisa mhando yeakaganhurwa hashi tafura.

Pakati pezvinhu zvinowanikwa mukuburitswa kwekutanga, kutsigirwa kweRESP2 protocol uye 130 Redis mirairo inocherechedzwa, iyo inenge inoenderana nekushanda kweRedis 2.8 kuburitswa. Pamusoro pezvo, Dragonfly inotsigira mirairo yese yememcached kunze kweCAS (check-and-set), inopa tsigiro yeasynchronous mashandiro ekugadzira snapshots, inopa fungidziro yekushandiswa kwendangariro, inopa yakavakirwa-mukati Lua 5.4 muturikiri, uye inotsigira yakaoma data mhando sehashi, seti, uye zvinyorwa (ZSET, HSET, LIST, SETS uye STRING).

A caching mode inowanikwa zvakasiyana, iyo inotsiva yekare data ne data itsva mushure mokunge ndangariro yemahara yapera. Izvo zvinokwanisika kubatanidza hupenyu hwese kune data panguva iyo iyo data inoonekwa seyakakosha. Mamiriro ekuchengetedza anogona kupeperetswa kune diski kumashure kuti adzore gare gare mushure mekutangazve. Kuti utore sisitimu, HTTP console inopihwa (inosungira kuTCP port 6379) uye API yekudzoka metrics, inoenderana nePrometheus. Mushanduro dzinotevera, isu tinoronga kuwedzera rutsigiro rweRedis mirairo uye kushandisa kugona kudzokorodza chengetedzo kuti ipe kukanganisa kushivirira uye kuyera kuremerwa.

Source: opennet.ru

Voeg