Kutulutsidwa kwa Dragonfly 1.0, njira yosungiramo data mu RAM

The Dragonfly in-memory caching and storage system yatulutsidwa, yomwe imagwiritsa ntchito deta mumtundu waukulu / wamtengo wapatali ndipo ingagwiritsidwe ntchito ngati njira yopepuka yochepetsera ntchito ya malo odzaza kwambiri, kusungira mafunso ochedwa ku DBMS ndi deta yapakatikati mu RAM. Dragonfly imathandizira ma protocol a Memcached ndi Redis, omwe amakupatsani mwayi wogwiritsa ntchito malaibulale omwe alipo amakasitomala ndikusamutsa mapulojekiti pogwiritsa ntchito Memcached ndi Redis kupita ku Dragonfly popanda kukonzanso kachidindo.

Poyerekeza ndi Redis, Dragonfly inachulukitsa ka 2 pakuchita ntchito (zopempha 6 miliyoni pa sekondi iliyonse) pazantchito zamtundu wa Amazon EC16 c25gn.3.8xlarge. Poyerekeza ndi Memcached mu AWS c6gn.16xlarge chilengedwe, Dragonfly anatha kuchita 4.7 nthawi zambiri kulemba zopempha pa sekondi (3.8 miliyoni motsutsana 806 zikwi) ndi 1.77 zina kuwerenga zopempha pa sekondi (3.7 miliyoni motsutsana 2.1 miliyoni).

Kutulutsidwa kwa Dragonfly 1.0, njira yosungiramo data mu RAM

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

Kutulutsidwa kwa Dragonfly 1.0, njira yosungiramo data mu RAM

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 za Dragonfly:

  • Caching mode, yomwe imalowa m'malo mwa deta yakale ndi deta yatsopano pambuyo pa kukumbukira kwaulere.
  • Kuthandizira kumangiriza ku data moyo wonse womwe deta imawonedwa kuti ndiyofunika.
  • Thandizo loyendetsa malo osungira ku disk kumbuyo kuti mubwezeretsenso pambuyo poyambitsanso.
  • Kukhalapo kwa HTTP console (kumangiriza ku doko la TCP 6379) kwa kasamalidwe ka machitidwe ndi API yobwezera ma metrics, ogwirizana ndi Prometheus.
  • Kuthandizira kwa malamulo a 185 Redis, omwe ali ofanana ndi magwiridwe antchito a Redis 5.
  • Imathandizira malamulo onse a Memcached kupatula CAS (cheke-ndi-set).
  • Thandizo la ma asynchronous operation popanga zithunzithunzi.
  • Kugwiritsa ntchito kukumbukira molosera.
  • Womasulira wa Lua 5.4 womangidwa.
  • Imathandizira mitundu ya data yovuta monga ma hashi, seti, mindandanda (ZSET, HSET, LIST, SETS ndi STRING) ndi data ya JSON.
  • Imathandizira kubwereza kosungirako pakulekerera zolakwika komanso kusanja bwino.

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 a layisensi ya projekiti ya Dragonfly amafuna kuti codeyo isamutsidwe ku laisensi ya Apache 2.0 pa Marichi 15, 2028. 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.

Mtundu wa Dragonfly 1.0 ndiwodziwikiratu pakukhazikitsa kwake kothandizira kubwereza kwa data kuchokera pa seva yoyamba kupita yachiwiri. Komabe, Dragonfly ikhoza kukonzedwa kuti igwiritsidwe ntchito ngati yosungirako yachiwiri yomwe imalandira deta kuchokera ku seva yoyamba mwina yochokera ku Dragonfly kapena kutengera Redis. Replication management API imagwirizana ndi Redis ndipo imachokera pakugwiritsa ntchito ROLE ndi REPLICAOF (SLAVEOF) malamulo.

Source: opennet.ru

Kuwonjezera ndemanga