Ihe oru ngo Dragonfly na-etolite ngbanwe ngwa ngwa maka Redis na Memcached

Mwepụta mbụ nke usoro nchekwa nchekwa nchekwa Dragonfly dị, na-enye nkwado maka usoro Memcached na Redis, mana na-enye ohere ka e jiri arụ ọrụ dị elu gbuo ajụjụ na obere oriri ebe nchekwa. Usoro ahụ na-achịkwa data na usoro igodo / uru ma nwee ike iji ya dị ka ngwọta dị arọ iji mee ka ọrụ nke saịtị ndị dị elu dị ngwa, na-echekwa ajụjụ ngwa ngwa na DBMS na data etiti na RAM. Edere koodu Dragonfly na C/C++ ma kesaa ya n'okpuru BSL (Ikikere Isi mmalite azụmahịa).

Ndị na-arụkọ ọrụ MySQL tụpụtara ikikere BSL dị ka ihe ọzọ na ụdị Open Core. Ihe kachasị mkpa nke BSL bụ na koodu nke ọrụ dị elu dị na mbụ maka mgbanwe, ma maka oge ụfọdụ enwere ike iji ya n'efu naanị ma ọ bụrụ na agbakwunyere ọnọdụ ndị ọzọ, nke chọrọ ịzụrụ ikikere azụmahịa iji gafee. Usoro ikike ndị ọzọ nke ọrụ Dragonfly chọrọ ka ebufe koodu ahụ na ikike Apache 2.0 naanị na June 1, 2027. Ruo oge a, akwụkwọ ikike ahụ na-enye ohere iji koodu ahụ naanị iji hụ na ọrụ ya na ngwaahịa ya na-arụ ọrụ, ma machibido iji maka ịmepụta ọrụ igwe ojii na-akwụ ụgwọ nke na-arụ ọrụ dị ka ihe mgbakwunye na Dragonfly.

Dabere na ndị nrụpụta na nnwale egosipụtara, Dragonfly na-ekwu na ọ bụ sistemụ nchekwa nchekwa kachasị ọsọ. E jiri ya tụnyere Redis, Dragonfly nwetara mmụba okpukpu 25 na arụmọrụ yana mbelata okpukpu atọ na oriri ebe nchekwa maka ibu ọrụ nkịtị. Otu ihe nkesa Dragonfly nwere ike hazie ọtụtụ nde arịrịọ kwa sekọnd, dịka ọmụmaatụ, na Amazon EC2 c6gn.16xlarge gburugburu ọ ga-ekwe omume nweta arụmọrụ nke arịrịọ 3.8 nde kwa sekọnd.

Ihe oru ngo Dragonfly na-etolite ngbanwe ngwa ngwa maka Redis na Memcached

Na ule maka ịchekwa 5 GB nke data, Dragonfly chọrọ 30% obere ebe nchekwa karịa Redis. Mgbe ị na-emepụta snapshots na iwu “bgsave”, oriri ebe nchekwa na-abawanye, mana n'oge kacha elu ọ na-anọ ihe fọrọ nke nta ka ọ bụrụ okpukpu atọ karịa na Redis, yana ọrụ ndekọ foto n'onwe ya na-adị ngwa ngwa (n'ule ahụ, edere foto na Dragonfly na 30). sekọnd, mgbe Redis - na 42 sekọnd).

Ihe oru ngo Dragonfly na-etolite ngbanwe ngwa ngwa maka Redis na Memcached

A na-enweta ọrụ dị elu site na ụlọ ọrụ multi-threaded na-enweghị ikekọrịta ihe onwunwe (nkekọrịta-enweghị ihe ọ bụla), nke pụtara na a na-ekenye eri ọ bụla ihe nhazi dị iche iche na akụkụ nke data ya, na-arụ ọrụ na-enweghị mutexes na mkpọchi. Iji hụ na atomity mgbe ị na-arụ ọrụ na ọtụtụ igodo, a na-eji mkpọchi VLL dị fechaa. Iji chekwaa ozi nke ọma na ebe nchekwa, a na-eji usoro dashtable eme ihe, nke na-emejuputa ụdị tebụl hash kewara ekewa.

N'ime njirimara ndị dị na ntọhapụ mbụ, nkwado maka ụkpụrụ RESP2 na iwu 130 Redis ka a na-ahụta, bụ nke kwekọrọ na ọrụ nke Redis 2.8 ntọhapụ. Na mgbakwunye, Dragonfly na-akwado iwu niile memcached ma e wezụga CAS (nleba anya na-set), na-enye nkwado maka arụ ọrụ asynchronous maka ịmepụta snapshots, na-enye oriri ebe nchekwa amụma, na-enye nsụgharị Lua 5.4 arụnyere, ma na-akwado ụdị data mgbagwoju anya dị ka hashes, setịpụ, na ndepụta (ZSET, HSET, LIST, SETS na STRING).

Ụdị caching dị iche iche, nke na-eji data ọhụrụ dochie data ochie na-akpaghị aka mgbe ebe nchekwa efu gwụchara. Ọ ga-ekwe omume itinye oge ndụ na data n'oge a na-ewere data dị mkpa. Enwere ike ịkwanye steeti nchekwa na diski n'azụ maka mgbake ma emechaa ma malitegharịa. Iji jikwaa sistemụ ahụ, a na-enye console HTTP (jide na ọdụ ụgbọ mmiri TCP 6379) yana API maka iweghachi metrik, dakọtara na Prometheus. Na nsụgharị ndị ga-abịa n'ihu, anyị na-eme atụmatụ ịgbasa nkwado maka iwu Redis ma mejuputa ikike ịmegharị nchekwa iji nye nkwụsị mmejọ na nhazi ibu.

isi: opennet.ru

Tinye a comment