Ntchito ya Dragonfly ikupanga chosinthira mwachangu cha Redis ndi Memcached

Kutulutsidwa koyamba kwa kachipangizo ka Dragonfly in-memory caching system kulipo, kuthandizira ma protocol a Memcached ndi Redis, koma kulola kuti mafunso achitidwe ndi magwiridwe antchito apamwamba kwambiri komanso kugwiritsa ntchito kukumbukira pang'ono. Dongosololi limagwiritsa ntchito deta mumtundu wachinsinsi / wamtengo wapatali ndipo lingagwiritsidwe ntchito ngati njira yochepetsera kuti ifulumizitse ntchito ya malo odzaza kwambiri, kusungira mafunso ochedwa ku DBMS ndi deta yapakatikati mu RAM. Khodi ya Dragonfly imalembedwa mu C/C++ ndipo imagawidwa pansi pa BSL (Business Source License).

Layisensi ya BSL idaperekedwa ndi omwe adayambitsa MySQL ngati njira ina ya Open Core model. Chofunikira cha BSL ndikuti code of advanced performance ikupezeka kuti isinthidwe, koma kwa nthawi yayitali ingagwiritsidwe ntchito kwaulere pokhapokha ngati zinthu zowonjezera zakwaniritsidwa, zomwe zimafuna kugulidwa kwa laisensi yazamalonda kuti zipewe. Malamulo owonjezera alayisensi a projekiti ya Dragonfly amafuna kuti codeyo isamutsidwe ku layisensi ya Apache 2.0 pa Juni 1, 2027. Mpaka nthawi ino, chilolezocho chimalola kugwiritsa ntchito kachidindo kokha pofuna kuonetsetsa kuti ntchito ndi katundu wake zikugwira ntchito, koma zimaletsa kugwiritsa ntchito popanga mautumiki amtambo omwe amalipidwa omwe amakhala ngati chowonjezera ku Dragonfly.

Malinga ndi omwe akupanga ndikuwonetsa mayeso, Dragonfly imati ndiye njira yofulumira kwambiri yosungira kukumbukira. Poyerekeza ndi Redis, Dragonfly idachulukitsa kachitidwe ka 25 ndikuchepetsa katatu kagwiritsidwe ntchito ka kukumbukira ntchito wamba. Seva imodzi ya Dragonfly imatha kukonza zopempha mamiliyoni pa sekondi iliyonse, mwachitsanzo, mu Amazon EC2 c6gn.16xlarge chilengedwe kunali kotheka kukwaniritsa zopempha za 3.8 miliyoni pamphindi.

Ntchito ya Dragonfly ikupanga chosinthira mwachangu cha Redis ndi Memcached

Poyesa kusunga 5 GB ya data, Dragonfly inkafunika kukumbukira 30% poyerekeza ndi Redis. Popanga zithunzithunzi ndi lamulo la "bgsave", kukumbukira kumawonjezeka, koma panthawi yomweyi kumakhalabe pafupifupi katatu kuposa Redis, ndipo kujambula chithunzithunzi chokhachokha ndichothamanga kwambiri (pakuyesa, chithunzithunzi cha Dragonfly chinalembedwa mu 30). masekondi, pamene Redis - mu masekondi 42).

Ntchito ya Dragonfly ikupanga chosinthira mwachangu cha Redis ndi Memcached

Kuchita kwapamwamba kumatheka chifukwa cha zomangamanga zamitundu yambiri popanda kugawana zinthu (zogawana-palibe), zomwe zikutanthauza kuti ulusi uliwonse umapatsidwa pulosesa yosiyana ndi gawo lake la deta, kugwira ntchito popanda mutexes ndi zotsekera zozungulira. Kuonetsetsa kuti ma atomiki akugwira ntchito ndi makiyi angapo, maloko opepuka a VLL amagwiritsidwa ntchito. Kuti musunge bwino chidziwitso mu kukumbukira, mawonekedwe a dashtable amagwiritsidwa ntchito, omwe amagwiritsa ntchito mtundu wa tebulo la hashi logawidwa.

Zina mwazinthu zomwe zilipo pakumasulidwa koyamba, chithandizo cha protocol ya RESP2 ndi malamulo a 130 Redis amadziwika, omwe pafupifupi amagwirizana ndi magwiridwe antchito a Redis 2.8. Kuphatikiza apo, Dragonfly imathandizira malamulo onse osungidwa kupatula CAS (cheke-ndi-seti), imapereka chithandizo chantchito zosasinthika popanga zithunzithunzi, imapereka kugwiritsa ntchito kukumbukira kodziwikiratu, imapereka womasulira wa Lua 5.4, ndikuthandizira mitundu yovuta ya data monga ma hashes, seti, ndi mindandanda (ZSET, HSET, LIST, SETS ndi STRING).

Njira ya caching imapezeka padera, yomwe imalowetsa deta yakale ndi deta yatsopano pambuyo pa kukumbukira kwaulere. N'zotheka kugwirizanitsa moyo wonse ku deta yomwe deta imatengedwa kuti ndi yofunikira. Malo osungira amatha kuthamangitsidwa ku diski kumbuyo kuti mubwezeretsenso pambuyo poyambitsanso. Kuwongolera dongosolo, HTTP console imaperekedwa (imangiriza ku TCP port 6379) ndi API yobwezera ma metrics, ogwirizana ndi Prometheus. M'matembenuzidwe amtsogolo, tikukonzekera kukulitsa chithandizo cha malamulo a Redis ndikugwiritsanso ntchito zosungirako zosungirako zololera zolakwika ndi kusanja katundu.

Source: opennet.ru

Kuwonjezera ndemanga