Dragonfly, projekat koji tvrdi da je brža zamjena za Redis i Memcached

To je objavljena vijest prva verzija je već dostupna sistem za keširanje podataka u memoriji Dragonfly, koji pruža podršku za Memcached i Redis protokole, ali omogućava da se upiti izvode s mnogo većim performansama i manjom potrošnjom memorije.

Sistem rukuje podacima u formatu ključ/vrijednost i može se koristiti kao lagano rješenje za ubrzavanje jako opterećenih lokacija, keširanje sporih upita u DBMS-u i keširanje međupodataka u RAM-u.

The BSL je predložili suosnivači MySQL-a kao alternativa Open Core modelu. Suština BSL-a je da je kod proširene funkcionalnosti u početku dostupan za modifikaciju, ali se neko vrijeme može koristiti besplatno samo pod dodatnim uvjetima, koji zahtijevaju kupovinu komercijalne licence da bi se zaobišli.

Dodatni licencni uslovi projekta Dragonfly zahtijevaju da se kod konvertuje u Apache 2.0 licencu tek 1. juna 2027. Do tog vremena, licenca dozvoljava korištenje koda samo kako bi se osigurao rad svojih usluga i proizvoda, ali zabranjuje korištenje za kreiranje plaćenih usluga u oblaku koje djeluju kao dodatak za Dragonfly.

Dragonfly tvrdi da je najbrži sistem za pohranu memorije na svijetu, prema programerima i mjerilima. U poređenju sa Redisom, Dragonfly je postigao 25x povećanje performansi i 3x smanjenje potrošnje memorije pod tipičnim radnim opterećenjima. Jedan Dragonfly server može obraditi milione zahtjeva u sekundi, na primjer, u Amazon EC2 c6gn.16xlarge okruženju, postignuta je propusnost od 3,8 miliona zahtjeva u sekundi.

U testovima za skladištenje od 5 GB, Dragonfly je zahtijevao 30% manje memorije nego Redis. Tokom kreiranja snimaka pomoću naredbe "bgsave", potrošnja memorije se povećava, ali se u vršnim trenucima održava skoro tri puta manje nego u Redis-u, a sama operacija pisanja snimka je mnogo brža (u testu je snimak napisao u Dragonfly za 30 sekundi, a Redis - za 42 sekunde).

Visoke performanse se postižu zahvaljujući arhitekturi sa više niti nema zajedničkih resursa ( shared-nothing ), što implicira da je zaseban i nezavisan kontroler sa sopstvenim delom podataka vezan za svaku nit, koji radi bez muteksa ili spin-locka. Lagane VLL brave se koriste da osiguraju atomičnost kada se radi s više ključeva. Za efikasno pohranjivanje informacija u memoriju koristi se struktura dashtable, koja implementira neku vrstu particioniranih hash tablica.

Od funkcija dostupnih u prva verzija ističe podršku za RESP2 protokol i 130 Redis komandi, što otprilike odgovara funkcionalnosti Redis 2.8 izdanja.

Takođe, Dragonfly podržava sve Memcached komande osim CAS-a (provjeri i postavi), pruža podršku za asinkrone operacije za kreiranje snimaka, pruža predvidljivu potrošnju memorije, obezbjeđuje ugrađeni Lua 5.4 interpreter i podržava složene tipove podataka kao što su hashovi, skupovi i liste (ZSET, HSET, LIST, SETS , i STRING).

Odvojeno, dostupan je način keširanja, u kojem se stari podaci automatski zamjenjuju novim podacima kada se slobodna memorija iscrpi. Moguće je povezivanje sa podacima za život tokom kojeg se podaci smatraju relevantnim.

Stanje pohrane se može isprazniti na disk u pozadini za kasniji oporavak nakon ponovnog pokretanja. Za upravljanje sistemom, obezbeđena je HTTP konzola (vezuje se na TCP port 6379) i API za vraćanje metrike usklađene sa Prometheusom. U budućim izdanjima planiramo da proširimo podršku za Redis komande i implementiramo mogućnost repliciranja skladišta za nadilaženje greške i balansiranje opterećenja.

Konačno, ako ste zainteresirani da saznate više o tome, trebali biste znati da je Dragonfly kod napisan u C/C++ i distribuira se pod BSL licencom (Business Source License).

Možete se konsultovati o projektu Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.