Dragonfly, un proiect care pretinde a fi înlocuitorul mai rapid pentru Redis și Memcached

S-a dat vestea că prima versiune este deja disponibilă sistem de stocare a datelor în memorie Dragonfly, care oferă suport pentru protocoalele Memcached și Redis, dar permite interogărilor să ruleze cu performanțe mult mai mari și cu un consum mai mic de memorie.

Sistemul gestionează datele în format cheie/valoare și poate fi folosit ca o soluție ușoară pentru a accelera site-urile cu încărcare intensă, a stoca în cache interogările lente în DBMS și a stoca în cache datele intermediare în RAM.

BSL a fost propus de co-fondatorii MySQL ca alternativă la modelul Open Core. Esența BSL este că codul de funcționalitate extins este inițial disponibil pentru modificare, dar de ceva timp poate fi folosit gratuit doar în condițiile suplimentare, care necesită achiziționarea unei licențe comerciale pentru a ocoli.

Termenii suplimentari de licență ai proiectului Dragonfly impun ca codul să fie convertit în licența Apache 2.0 doar la 1 iunie 2027. Până în acel moment, licența permite utilizarea codului doar pentru a asigura funcționarea serviciilor și produselor sale, dar interzice utilizarea pentru a crea servicii cloud plătite care acționează ca un supliment pentru Dragonfly.

libelulă pretinde a fi cel mai rapid sistem de stocare a memoriei din lume, conform dezvoltatorilor și benchmark-urilor. În comparație cu Redis, Dragonfly a obținut o creștere a performanței de 25 ori și o reducere de trei ori a consumului de memorie la sarcinile de lucru tipice. Un singur server Dragonfly poate procesa milioane de solicitări pe secundă, de exemplu, într-un mediu Amazon EC3 c2gn.6xlarge, a fost atins un debit de 16 milioane de solicitări pe secundă.

În testele de stocare de 5 GB, Dragonfly a necesitat cu 30% mai puțină memorie decât Redis. În timpul creării de instantanee folosind comanda „bgsave”, consumul de memorie crește, dar la orele de vârf este menținut de aproape trei ori mai puțin decât în ​​Redis, iar operația de scriere a instantaneelor ​​în sine este mult mai rapidă (în test, a scris un instantaneu în Dragonfly în 30 de secunde și Redis - în 42 de secunde).

Performanța ridicată este obținută datorită unei arhitecturi multi-threaded nicio resurse partajate ( shared-nothing ), ceea ce implică faptul că la fiecare fir de execuție este atașat un controler separat și independent, cu propriile date, care funcționează fără mutexuri sau spin-lock-uri. Încuietorile ușoare VLL sunt folosite pentru a asigura atomicitatea atunci când aveți de-a face cu mai multe chei. Pentru stocarea eficientă a informațiilor în memorie, se folosește structura dashtable, care implementează un fel de tabele hash partiționate.

Dintre funcțiile disponibile în prima versiune evidențiază suportul pentru protocolul RESP2 și 130 de comenzi Redis, care corespunde aproximativ cu funcționalitatea versiunii Redis 2.8.

În plus, Dragonfly acceptă toate comenzile Memcached, cu excepția CAS (verificați și setați), oferă suport pentru operațiuni asincrone pentru a crea instantanee, oferă un consum previzibil de memorie, oferă un interpret Lua 5.4 încorporat și acceptă tipuri de date complexe, cum ar fi hash-uri, seturi și liste (ZSET, HSET, LIST, SETS) , și STRING).

Separat, este disponibil un mod de stocare în cache, în care datele vechi sunt înlocuite automat cu date noi odată ce memoria liberă este epuizată. Este posibil să vă conectați la datele pe viață în timpul cărora datele sunt considerate relevante.

Starea de stocare poate fi eliminată pe disc în fundal pentru o recuperare ulterioară după o repornire. Pentru a gestiona sistemul, sunt furnizate o consolă HTTP (se leagă la portul TCP 6379) și un API pentru a returna valorile compatibile cu Prometheus. În versiunile viitoare, intenționăm să extindem suportul pentru comenzile Redis și să implementăm capacitatea de a replica stocarea pentru failover și echilibrarea încărcăturii.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre el, trebuie să știți că codul Dragonfly este scris în C/C++ și este distribuit sub licența BSL (Business Source License).

Puteți consulta despre proiect În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.