Proiectul Dragonfly dezvoltă o alternativă mai rapidă pentru Redis și Memcached.

A fost lansat primul release al sistemului de caching în memorie Dragonfly, care suportă protocoalele Memcached și Redis, dar permite efectuarea de interogări cu mult mai multă performanță și cu un consum mai mic de memorie. Sistemul manipulează datele în format cheie/valoare și poate fi aplicat ca o soluție ușoară pentru accelerarea funcționării site-urilor cu trafic intens, cache-uind interogările lente către SGBD și datele intermediare în memorie. Codul Dragonfly este scris în limbajele C/C++ și este distribuit sub licența BSL (Business Source License).

Licența BSL a fost propusă de co-fondatorii MySQL ca o alternativă la modelul Open Core. Esența BSL este că codul funcționalității extinse este disponibil pentru modificări de la început, dar pentru o anumită perioadă poate fi utilizat gratuit doar cu respectarea unor condiții suplimentare, altele decât care necesită achiziționarea unei licențe comerciale. Condițiile suplimentare de licențiere ale proiectului Dragonfly prevăd că traducerea codului pe licența Apache 2.0 se va face doar pe 1 iunie 2027. Până atunci, licența permite utilizarea codului doar pentru furnizarea propriilor servicii și produse, dar interzice aplicarea acestuia pentru crearea de servicii cloud plătite care să se ridice deasupra Dragonfly.

Conform dezvoltatorilor și testelor demonstrate, Dragonfly pretinde titlul de cea mai rapidă sistem de stocare în memorie. Comparativ cu Redis, în Dragonfly, în condiții tipice de sarcină, s-a reușit o creștere de 25 de ori a performanței și o reducere de trei ori a consumului de memorie. Un serverul Dragonfly poate procesa milioane de interogări pe secundă, de exemplu, în mediu Amazon EC2 c6gn.16xlarge s-a obținut o performanță de 3.8 milioane de interogări pe secundă.

Proiectul Dragonfly dezvoltă o alternativă mai rapidă pentru Redis și Memcached.

În testele pentru stocarea a 5 GB de date, Dragonfly a necesitat cu 30% mai puțină memorie decât Redis. În timpul creării instantaneelor cu comanda „bgsave”, consumul de memorie crește, dar în momentele de vârf rămâne aproape de trei ori mai mic decât în Redis, iar operațiunea de scriere a instantaneului se face semnificativ mai repede (în testul instantaneul în Dragonfly a fost scris în 30 de secunde, în timp ce în Redis — în 42 de secunde).

Proiectul Dragonfly dezvoltă o alternativă mai rapidă pentru Redis și Memcached.

Performanța înaltă este obținută grație arhitecturii multi-thread fără partajarea resurselor (shared-nothing), care implică faptul că fiecărui fir îi este alocat un handler individual de date, care funcționează fără mutex-uri și blocaje spin. Pentru a asigura atomicitatea procesării cu mai multe chei, se utilizează blocări ușoare VLL. Pentru stocarea eficientă a informației în memorie, se aplică structura dashtable, care implementează o variantă de tabele hash secționate.

Printre funcționalitățile disponibile în prima versiune se numără suportul pentru protocolul RESP2 și 130 de comenzi Redis, ceea ce corespunde, aproximativ, funcționalității versiunii Redis 2.8. În plus, Dragonfly suportă toate comenzile memcached, cu excepția CAS (check-and-set), oferă suport pentru operațiuni asincrone pentru crearea de snapshot-uri, asigură un consum de memorie previzibil, dispune de un interpret Lua 5.4 încorporat și suportă tipuri de date complexe, cum ar fi hash-uri, mulțimi și liste (ZSET, HSET, LIST, SETS și STRING).

Există un mod de cache disponibil, în care se asigură automat înlocuirea datelor vechi cu altele noi după ce memoria liberă s-a epuizat. Este posibilă legarea de date cu o durată de viață, pe durata căreia datele sunt considerate actuale. Starea stocării poate fi salvată pe disc în fundal pentru o recuperare ulterioară după repornire. Pentru gestionarea sistemului este disponibilă o consolă HTTP (legată de portul TCP 6379) și un API pentru livrarea metricilor, compatibil cu Prometheus. În versiunile următoare, se preconizează extinderea suportului pentru comenzile Redis și implementarea capacității de replicare a stocării pentru asigurarea redundanței și a echilibrării încărcării.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster