Ukukhishwa kwe-Dragonfly 1.0, isistimu yokulondolozwa kwedatha yenkumbulo

I-Dragonfly in-memory caching and storage system ikhishiwe, elawula idatha ngefomethi yokhiye/inani futhi ingasetshenziswa njengesixazululo esingasindi sokusheshisa umsebenzi wamasayithi alayishwe kakhulu, ukufaka kunqolobane imibuzo ehamba kancane ku-DBMS nedatha emaphakathi ku-RAM. I-dragonfly isekela izivumelwano ze-Memcached ne-Redis, ezikuvumela ukuthi usebenzise amalabhulali eklayenti akhona futhi udlulisele amaphrojekthi usebenzisa i-Memcached ne-Redis ku-Dragonfly ngaphandle kokuphinda usebenzise ikhodi.

Uma kuqhathaniswa ne-Redis, I-dragonfly ifinyelele ukusebenza okuphindwe izikhathi ezingu-2 (izicelo eziyizigidi ezingu-6 ngomzuzwana) ngomthwalo ojwayelekile wokusebenza endaweni ye-Amazon EC16 c25gn.3.8xlarge. Uma kuqhathaniswa ne-Memcached endaweni ye-AWS c6gn.16xlarge, I-dragonfly ikwazile ukwenza izicelo zokubhala izikhathi ezingu-4.7 ngaphezulu ngomzuzwana (izigidi ezingu-3.8 uma ziqhathaniswa nezinkulungwane ezingu-806) kanye nezicelo ezifundwayo izikhathi ezingu-1.77 ngomzuzwana (izigidi ezingu-3.7 uma ziqhathaniswa nezigidi ezingu-2.1).

Ukukhishwa kwe-Dragonfly 1.0, isistimu yokulondolozwa kwedatha yenkumbulo

Ekuhlolweni kokugcina idatha engu-5 GB, Ujekamanzi udinga inkumbulo engaphansi ngo-30% kune-Redis. Lapho udala izifinyezo ngomyalo we- "bgsave", ukusetshenziswa kwenkumbulo kuyanda, kodwa ngezikhathi eziphakeme kwahlala cishe izikhathi ezintathu ngaphansi kwe-Redis, futhi umsebenzi wokuqopha isifinyezo ngokwawo uyashesha kakhulu (esivivinyweni, isifinyezo ku-Dragonfly sabhalwa ngo-30 imizuzwana, kuyilapho Redis - ngemizuzwana 42).

Ukukhishwa kwe-Dragonfly 1.0, isistimu yokulondolozwa kwedatha yenkumbulo

Ukusebenza okuphezulu kufinyelelwa ngenxa yesakhiwo esinemicu eminingi ngaphandle kokwabelana ngezinsiza (okwabelwana-lutho), okusho ukuthi intambo ngayinye inikezwe iphrosesa ehlukile ehlukene nengxenye yayo yedatha, esebenza ngaphandle kwe-mutexes nama-spin locks. Ukuqinisekisa i-athomu lapho usebenza ngokhiye abaningi, izingidi ze-VLL ezingasindi ziyasetshenziswa. Ukugcina kahle ulwazi enkumbulweni, kusetshenziswa ukwakheka kwedeshibhodi, okusebenzisa uhlobo lwethebula le-hashi elihlukanisiwe.

Ezinye izici zeDragonfly:

  • Imodi yokulondoloza isikhashana, eshintsha ngokuzenzakalelayo idatha endala ngedatha entsha ngemva kokuba inkumbulo yamahhala isiphelile.
  • Ukusekela kokubophezela kudatha impilo yonke lapho idatha ithathwa njengebalulekile.
  • Usekelo lokuguquguqula isimo sesitoreji kudiski ngemuva ukuze ululame ngemva kokuqala kabusha.
  • Ukuba khona kwekhonsoli ye-HTTP (ibophezela kumbobo ye-TCP 6379) yokuphathwa kwesistimu kanye ne-API yokubuyisela ama-metrics, asebenzisana ne-Prometheus.
  • Ukusekelwa kwemiyalo engu-185 Redis, ecishe ilingane nokusebenza kokukhishwa kwe-Redis 5.
  • Isekela yonke imiyalo ye-Memcached ngaphandle kwe-CAS (hlola bese usetha).
  • Ukusekelwa kokusebenza okuvumelanayo kokudala izifinyezo.
  • Ukusetshenziswa kwenkumbulo okubikezelwayo.
  • Umhumushi owakhelwe ngaphakathi we-Lua 5.4.
  • Isekela izinhlobo zedatha eziyinkimbinkimbi njengama-hashi, amasethi, izinhlu (i-ZSET, i-HSET, i-LIST, i-SETS ne-STRING) kanye nedatha ye-JSON.
  • Isekela ukuphindaphinda kwesitoreji sokubekezelela amaphutha nokulinganisa komthwalo.

Ikhodi Dragonfly ibhalwe nge-C/C++ futhi isatshalaliswa ngaphansi kwe-BSL (Ilayisensi Yomthombo Webhizinisi). Ilayisense ye-BSL yaphakanyiswa abasunguli be-MySQL njengenye indlela yemodeli ye-Open Core. Ingqikithi ye-BSL iwukuthi ikhodi yokusebenza okuthuthukisiwe iyatholakala ekuqaleni ukuze ilungiswe, kodwa isikhathi esithile ingasetshenziswa mahhala kuphela uma izimo ezengeziwe zihlangatshezwana nazo, ezidinga ukuthengwa kwelayisensi yokuhweba ukuze kweqe. Imigomo yelayisensi eyengeziwe yephrojekthi ye-Dragonfly idinga ukuthi ikhodi idluliselwe kulayisensi ye-Apache 2.0 ngoMashi 15, 2028. Kuze kube yilesi sikhathi, ilayisensi ivumela ukusetshenziswa kwekhodi kuphela ukuze kuqinisekiswe ukusebenza kwamasevisi nemikhiqizo yayo, kodwa ivimbela ukusetshenziselwa ukwakhiwa kwezinsizakalo zamafu ezikhokhelwayo ezisebenza njengesengezo ku-Dragonfly.

Inguqulo I-Dragonfly 1.0 iphawuleka ekusebenziseni kwayo usekelo lokuphindaphinda idatha kusuka kuseva eyinhloko kuya kweyesibili. Kodwa-ke, i-Dragonfly ingalungiselelwa ukuthi isetshenziswe njengesitoreji sesibili esithola idatha kusuka kuseva eyinhloko noma ngokusekelwe ku-Dragonfly noma ngokusekelwe ku-Redis. I-API yokulawula ukuphindaphinda ihambisana ne-Redis futhi isekelwe ekusetshenzisweni kwe-ROLE kanye ne-REPLICAOF (SLAVEOF) imiyalo.

Source: opennet.ru

Engeza amazwana