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

Ka ishte rasti i lëshimit të sistemit të caches dhe ruajtjes së të dhënave në memorien e përkohshme Dragonfly, e cila manipulon të dhënat në formatin çelës/vlerë dhe mund të përdoret si një zgjidhje e lehtë për të përshpejtuar funksionimin e faqeve të internetit me ngarkesa të larta, duke cache-ing kërkesat e ngadalta në DBMS dhe të dhënat ndërmjetëse në memorien e përkohshme. Dragonfly mbështet protokollet Memcached dhe Redis, gjë që lejon përdorimin e bibliotekave ekzistuese të klientëve dhe pa ripunim të kodit të shndërrojë projektet që përdorin Memcached dhe Redis në Dragonfly.

Në krahasim me Redis, në Dragonfly gjatë llojeve tipike të ngarkesave në mjedisin Amazon EC2 c6gn.16xlarge arriti të sigurojë një rritje prej 25 herësh në performancë (3.8 milion kërkesa në sekondë). Në krahasim me Memcached në mjedisin AWS c6gn.16xlarge, Dragonfly arriti të ekzekutojë 4.7 herë më shumë kërkesa në sekondë për shkrim (3.8 milion kundrejt 806 mijë) dhe 1.77 herë më shumë kërkesa në sekondë për lexim (3.7 milion kundrejt 2.1 milion).

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

Në testet e ruajtjes, Dragonfly kërkoi 30% më pak memorie se sa Redis për 5 GB të dhënash. Gjatë krijimit të snapshoteve me komandën "bgsave", konsumi i memories rritet, por në momentet e majave mbetet gati tre herë më i ulët se në Redis, ndërsa operacioni i shkruarjes së snapshotit kryhet ndjeshëm më shpejt (në testin e snapshotit, Dragonfly u shkrua brenda 30 sekondave, ndërsa Redis - brenda 42 sekondave).

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

Performanca e lartë arrihet falë arkitekturës shumëprocesoresh pa ndarje burimesh (shared-nothing), e cila nënkupton se çdo proces i lidhur ka një përpunues të veçantë me pjesën e tij të të dhënave dhe punon pa mutex dhe bllokime spin. Për të garantuar atomikën gjatë punës me çelësa të shumtë, përdoren bllokime të lehta VLL. Për ruajtjen efikase të informacionit në memorie aplikohet struktura dashtable, e cila realizon një lloj tabelash hash të ndara.

Disa aftësi të Dragonfly:

  • Regjimi i caching-ut, nĂ« tĂ« cilin automatikisht sigurohet zĂ«vendĂ«simi i tĂ« dhĂ«nave tĂ« vjetra me tĂ« rejat pas shterimit tĂ« memories sĂ« lirĂ«.
  • MbĂ«shtetje pĂ«r lidhjen me tĂ« dhĂ«nat e jetĂ«s sĂ« skadimit, gjatĂ« sĂ« cilĂ«s tĂ« dhĂ«nat konsiderohen tĂ« vlefshme.
  • MbĂ«shtetje pĂ«r rivendosjen e gjendjes sĂ« depozitĂ«s nĂ« disqe nĂ« mĂ«nyrĂ« nĂ« prapavijĂ« pĂ«r rimarrje pas ri-inicializimit.
  • Prania e njĂ« konsolĂ« HTTP (e lidhur me portin TCP 6379) pĂ«r menaxhimin e sistemit dhe API pĂ«r ofrimin e metrikave, e pĂ«rshtatshme me Prometheus.
  • MbĂ«shtetje pĂ«r 185 komanda Redis, qĂ« Ă«shtĂ« afĂ«rsisht e barabartĂ« me funksionalitetin e lĂ«shimit tĂ« Redis 5.
  • MbĂ«shtetje pĂ«r tĂ« gjitha komandat e Memcached, pĂ«rveç CAS (kontrollo-dhe-shtoi).
  • MbĂ«shtetje pĂ«r operacione asinkrone pĂ«r krijimin e snapshot-eve.
  • Konsum i parashikueshĂ«m i memories.
  • Interpretues i ndĂ«rtuar i Lua 5.4.
  • MbĂ«shtetje pĂ«r tipe tĂ« zakonshme tĂ« tĂ« dhĂ«nave, siç janĂ« hashes, grupe, lista (ZSET, HSET, LIST, SETS dhe STRING) dhe tĂ« dhĂ«na nĂ« formatin JSON.
  • MbĂ«shtetje pĂ«r replikimin e depozitĂ«s pĂ«r tĂ« garantuar qĂ«ndrueshmĂ«rinĂ« dhe balancimin e ngarkesĂ«s.

Kodi Dragonfly është shkruar në gjuhët C/C++ dhe shpërndahet nën licencën BSL (Business Source License). Licenca BSL u propozuar nga bashkëthemeluesit e MySQL si një alternativë ndaj modelit Open Core. Qëllimi i BSL është se kodi i funksionalitetit të zgjeruar është fillimisht i disponueshëm për modifikim, por për një periudhë të caktuar përdoret falas vetëm në përputhje me kushte të tjera, për të cilat kërkohet blerja e një licence komerciale. Kushtet e tjera të licencës për projektin Dragonfly parashikojnë kalimin e kodit në licencën Apache 2.0 më 15 mars 2028. Deri në atë kohë, licenca lejon përdorimin e kodit vetëm për të siguruar funksionimin e shërbimeve dhe produkteve tuaja, por ndalon përdorimin për të krijuar shërbime të paguara në re që shërbejnë si shtresë mbi Dragonfly.

Versioni Dragonfly 1.0 veçohet për implementimin e mbështetjes për replikimin e të dhënave nga burimi server në dytësore. Në këtë mënyrë, Dragonfly mund të konfigurohet për t'u përdorur si një ruajtje dytësore që pranon të dhëna nga serveri primar, si në bazë të Dragonfly ashtu edhe në bazë të Redis. API-ja për menaxhimin e replikimit është e përputhshme me Redis dhe bazohet në përdorimin e komandave ROLE dhe REPLICAOF (SLAVEOF).

Burimi: opennet.ru

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