Izdanje Dragonfly 1.0, sistema za keširanje podataka u RAM

Izdan je Dragonfly sistem za keširanje i skladištenje podataka u memoriji koji manipuliše podacima u formatu ključ/vrijednost i može se koristiti kao lagano rješenje za ubrzanje rada visoko opterećenih lokacija, keširanje sporih upita prema DBMS-u i međupodataka u RAM-u. Dragonfly podržava Memcached i Redis protokole, što vam omogućava da koristite postojeće klijentske biblioteke i prenesete projekte koristeći Memcached i Redis na Dragonfly bez prerade koda.

U poređenju sa Redis-om, Dragonfly je postigao 2 ​​puta povećanje performansi (6 miliona zahteva u sekundi) za tipična radna opterećenja u okruženju Amazon EC16 c25gn.3.8xlarge. U poređenju sa Memcached-om u okruženju AWS c6gn.16xlarge, Dragonfly je bio u stanju da izvrši 4.7 puta više zahteva za pisanje u sekundi (3.8 miliona naspram 806 hiljada) i 1.77 puta više zahteva za čitanje u sekundi (3.7 miliona prema 2.1 milion).

Izdanje Dragonfly 1.0, sistema za keširanje podataka u RAM

U testovima za pohranjivanje 5 GB podataka, Dragonfly je zahtijevao 30% manje memorije nego Redis. Prilikom kreiranja snimaka komandom “bgsave” potrošnja memorije se povećava, ali je u trenucima najvećeg opterećenja ostala skoro tri puta manja nego u Redisu, a sama operacija snimanja snimka je mnogo brža (u testu je snimak u Dragonfly-u napisan u 30 sekundi, dok Redis - za 42 sekunde).

Izdanje Dragonfly 1.0, sistema za keširanje podataka u RAM

Visoke performanse se postižu zahvaljujući višenitnoj arhitekturi bez dijeljenja resursa (shared-nothing), što znači da je svakoj niti dodijeljen poseban odvojeni procesor sa vlastitim dijelom podataka, koji radi bez muteksa i spin zaključavanja. Kako bi se osigurala atomicnost pri radu s više ključeva, koriste se lagane VLL brave. Za efikasno pohranjivanje informacija u memoriju, koristi se struktura dashtable, koja implementira tip particionirane hash tablice.

Neke karakteristike Dragonfly-a:

  • Način keširanja, koji automatski zamjenjuje stare podatke novim podacima nakon što se slobodna memorija iscrpi.
  • Podrška za vezivanje podataka tokom cijelog životnog vijeka tokom kojeg se podaci smatraju relevantnim.
  • Podrška za ispiranje stanja skladištenja na disk u pozadini za kasniji oporavak nakon ponovnog pokretanja.
  • Prisustvo HTTP konzole (vezuje se na TCP port 6379) za upravljanje sistemom i API za vraćanje metrike, kompatibilan sa Prometheusom.
  • Podrška za 185 Redis komandi, što je otprilike ekvivalentno funkcionalnosti Redis 5 izdanja.
  • Podržava sve Memcached komande osim CAS (provjeri i postavi).
  • Podrška za asinkrone operacije za kreiranje snimaka.
  • Predvidljiva potrošnja memorije.
  • Ugrađeni Lua 5.4 interpreter.
  • Podržava složene tipove podataka kao što su hashovi, skupovi, liste (ZSET, HSET, LIST, SETS i STRING) i JSON podaci.
  • Podržava replikaciju skladišta za toleranciju grešaka i balansiranje opterećenja.

Dragonfly kod je napisan u C/C++ i distribuira se pod BSL (Business Source License). BSL licencu su predložili suosnivači MySQL-a kao alternativu Open Core modelu. Suština BSL-a je da je kod napredne funkcionalnosti u početku dostupan za izmjenu, ali se neko vrijeme može koristiti besplatno samo ako su ispunjeni dodatni uvjeti koji zahtijevaju kupovinu komercijalne licence za zaobilaženje. Dodatni uslovi licence za projekat Dragonfly zahtijevaju da se kod prenese na licencu Apache 2.0 15. marta 2028. Do ovog trenutka, licenca dozvoljava korištenje koda samo za osiguranje rada svojih usluga i proizvoda, ali zabranjuje korištenje za kreiranje plaćenih usluga u oblaku koji djeluju kao dodatak Dragonfly-u.

Verzija Dragonfly 1.0 se ističe po implementaciji podrške za replikaciju podataka sa primarnog servera na sekundarni. Međutim, Dragonfly se može konfigurirati da se koristi kao sekundarna pohrana koja prima podatke od primarnog servera ili zasnovanog na Dragonfly-u ili baziranom na Redis-u. API za upravljanje replikacijom je kompatibilan sa Redis-om i baziran je na upotrebi naredbi ROLE i REPLICAOF (SLAVEOF).

izvor: opennet.ru

Dodajte komentar