Lëshimi i Dragonfly 1.0, sistemit për ruajtjen e të dhënave në memorien e operativ

ËshtĂ« publikuar sistemi Dragonfly pĂ«r cache dhe ruajtje tĂ« tĂ« dhĂ«nave nĂ« RAM, i cili punon me tĂ« dhĂ«na nĂ« formatin çelĂ«s/vlerĂ« dhe mund tĂ« pĂ«rdoret si njĂ« zgjidhje e lehtĂ« pĂ«r tĂ« pĂ«rshpejtuar faqet me ngarkesĂ« tĂ« lartĂ«, duke ruajtur nĂ« cache kĂ«rkesat e ngadalta ndaj DBMS dhe tĂ« dhĂ«nat e ndĂ«rmjetme nĂ« memorien operative. Dragonfly mbĂ«shtet protokollet Memcached dhe Redis, çka mundĂ«son pĂ«rdorimin e bibliotekave ekzistuese tĂ« klientit dhe migrimin nĂ« Dragonfly tĂ« projekteve qĂ« pĂ«rdorin Memcached dhe Redis pa rishkruar kodin.

Krahasuar me Redis, Dragonfly në llojet tipike të ngarkesës në mjedisin Amazon EC2 c6gn.16xlarge arriti të sigurojë një rritje 25-fish të performancës (3.8 milion kërkesa në sekondë). Krahasuar me Memcached në mjedisin AWS c6gn.16xlarge, Dragonfly arriti të përpunojë 4.7 herë më shumë kërkesa shkrimi në sekondë (3.8 milion kundrejt 806 mijë) dhe 1.77 herë më shumë kërkesa leximi në sekondë (3.7 milion kundrejt 2.1 milion).

Lëshimi i Dragonfly 1.0, sistemit për ruajtjen e të dhënave në memorien e operativ

Në testet për ruajtjen e 5 GB të dhënash, Dragonfly kërkoi 30% më pak memorie se Redis. Gjatë krijimit të snapshot-eve me komandën «bgsave», konsumi i memories rritet, por në momentet kulmore ai mbeti pothuajse tre herë më i ulët se te Redis, ndërsa vetë operacioni i shkrimit të snapshot-it u krye dukshëm më shpejt (në test, snapshot-i në Dragonfly u shkrua për 30 sekonda, ndërsa Redis për 42 sekonda).

Lëshimi i Dragonfly 1.0, sistemit për ruajtjen e të dhënave në memorien e operativ

Performanca e lartë arrihet falë arkitekturës shumëfijore pa ndarje burimesh (shared-nothing), që nënkupton se çdo fije lidhet me një handler të veçantë, të izoluar, me pjesën e vet të të dhënave, i cili punon pa mutex dhe spin-lock. Për të garantuar atomizmin gjatë punës me disa çelësa përdoren bllokime të lehta VLL. Për ruajtje efikase të informacionit në memorie përdoret struktura dashtable, e cila zbaton një variant të hash-tables të segmentuara.

Disa nga veçoritë e Dragonfly:

  • Modalitet cache, nĂ« tĂ« cilin zĂ«vendĂ«simi i tĂ« dhĂ«nave tĂ« vjetra me tĂ« reja kryhet automatikisht pasi tĂ« shterohet memoria e lirĂ«.
  • MbĂ«shtetje pĂ«r caktimin e afatit tĂ« vlefshmĂ«risĂ« sĂ« tĂ« dhĂ«nave, gjatĂ« tĂ« cilit ato konsiderohen aktuale.
  • MbĂ«shtetje pĂ«r ruajtjen nĂ« sfond tĂ« gjendjes sĂ« storage nĂ« disk pĂ«r rikuperim tĂ« mĂ«vonshĂ«m pas rinisjes.
  • Prania e njĂ« konsole HTTP (e lidhur me portĂ«n TCP 6379) pĂ«r menaxhimin e sistemit dhe e njĂ« API-je pĂ«r ekspozimin e metrikave, e pĂ«rputhshme me Prometheus.
  • MbĂ«shtet 185 komanda tĂ« Redis, qĂ« afĂ«rsisht korrespondojnĂ« me funksionalitetin e versionit Redis 5.
  • MbĂ«shtet tĂ« gjitha komandat e Memcached, pĂ«rveç CAS (check-and-set).
  • MbĂ«shtetje pĂ«r operacione asinkrone pĂ«r krijimin e snapshot-eve.
  • Konsum i parashikueshĂ«m i memories.
  • Interpretues i integruar Lua 5.4.
  • MbĂ«shtetje pĂ«r lloje komplekse tĂ« tĂ« dhĂ«nave, si hash, sete, lista (ZSET, HSET, LIST, SETS dhe STRING) dhe tĂ« dhĂ«na nĂ« formatin JSON.
  • MbĂ«shtetje pĂ«r replikimin e ruajtjes sĂ« tĂ« dhĂ«nave pĂ«r tĂ« siguruar tolerancĂ« ndaj dĂ«shtimeve dhe balancim tĂ« ngarkesĂ«s.

Kodi i Dragonfly Ă«shtĂ« shkruar nĂ« gjuhĂ«t C/C++ dhe shpĂ«rndahet sipas licencĂ«s BSL (Business Source License). Licenca BSL u propozua nga bashkĂ«themeluesit e MySQL si alternativĂ« ndaj modelit Open Core. Thelbi i BSL Ă«shtĂ« se kodi i funksionalitetit tĂ« zgjeruar Ă«shtĂ« fillimisht i disponueshĂ«m pĂ«r modifikim, por pĂ«r njĂ« periudhĂ« tĂ« caktuar mund tĂ« pĂ«rdoret falas vetĂ«m nĂ«se respektohen kushte shtesĂ«; pĂ«r t’i anashkaluar ato kĂ«rkohet blerja e njĂ« licence komerciale. Kushtet shtesĂ« tĂ« licencĂ«s sĂ« projektit Dragonfly parashikojnĂ« kalimin e kodit nĂ« licencĂ«n Apache 2.0 mĂ« 15 mars 2028. Deri atĂ«herĂ«, licenca lejon pĂ«rdorimin e kodit vetĂ«m pĂ«r funksionimin e shĂ«rbimeve dhe produkteve tĂ« veta, por ndalon pĂ«rdorimin e tij pĂ«r krijimin e shĂ«rbimeve cloud me pagesĂ« qĂ« ndĂ«rtohen mbi Dragonfly.

Versioni Dragonfly 1.0 dallohet për zbatimin e mbështetjes së replikimit të të dhënave nga nyja primare serverë te nyja sekondare. Dragonfly mund të konfigurohet gjithashtu si ruajtje sekondare, që merr të dhëna nga serveri primar si në bazë të Dragonfly, ashtu edhe në bazë të Redis. API për menaxhimin e replikimit është i përputhshëm me Redis dhe bazohet në përdorimin e komandave ROLE dhe REPLICAOF (SLAVEOF).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster