Dragonfly, un projecte que pretén ser el reemplaçament per ser més ràpid per a Redis i Memcached

Es va donar a conèixer la notícia que ja està disponible la primera versió del sistema d'emmagatzematge a la memòria cau de dades en memòria Dragonfly, que brinda suport per als protocols Memcached i Redis, però permet que les consultes s'executin amb un rendiment molt més gran i amb menys consum de memòria.

El sistema manipula les dades en el format clau/valor i es pot utilitzar com una solució lleugera per accelerar llocs molt carregats, emmagatzemar en memòria cau consultes lentes al DBMS i dades intermèdies a la RAM.

El BSL va ser proposat pels cofundadors de MySQL com una alternativa al model Open Core. L'essència de BSL és que el codi de funcionalitat estesa inicialment està disponible per a modificació, però durant algun temps es pot fer servir de forma gratuïta només subjecte a condicions addicionals, que requereixen la compra d'una llicència comercial per eludir.

Els termes de llicència addicionals del projecte Dragonfly requereixen que el codi es converteixi a la llicència Apache 2.0 només l'1 de juny de 2027. Fins aleshores, la llicència permet l'ús del codi només per garantir el funcionament dels seus serveis i productes, però prohibeix lús per crear serveis al núvol pagaments que actuïn com un complement de Dragonfly.

libèl·lula afirma ser el sistema demmagatzematge en memòria més ràpid del món, segons desenvolupadors i punts de referència. En comparació amb Redis, Dragonfly va aconseguir un augment de rendiment de 25 vegades i una reducció de 3 vegades en el consum de memòria sota càrregues de treball típiques. Un sol servidor Dragonfly pot processar milions de sol·licituds per segon, per exemple, en un entorn Amazon EC2 c6gn.16xlarge, es va aconseguir un rendiment de 3,8 milions de sol·licituds per segon.

A les proves d'emmagatzematge de 5 GB, Dragonfly va requerir un 30% menys de memòria que Redis. Durant la creació d'instantànies mitjançant l'ordre bgsave, el consum de memòria augmenta, però a les hores punta es manté gairebé tres vegades menys que a Redis, i l'operació d'escriptura de la instantània en si és molt més ràpida (a la prova, es va escriure una instantània a Dragonfly en 30 segons, i Redis – en 42 segons).

L'alt rendiment s'aconsegueix gràcies a una arquitectura de subprocessos múltiples sense recursos compartits ( shared-nothing ), cosa que implica que un controlador separat i independent amb la seva pròpia porció de dades s'adjunta a cada subprocés, treballant sense mutexs ni spin-locks. Els cadenats VLL lleugers es fan servir per garantir l'atomicitat quan es tracta de diverses claus. Per emmagatzemar informació de manera eficient a la memòria, s'utilitza l'estructura dashtable, que implementa una mena de taules hash particionades.

De les funcions disponibles a la primera versió, es destaca la compatibilitat amb el protocol RESP2 i 130 comandes de Redis, el que correspon aproximadament a la funcionalitat de la versió Redis 2.8.

A més, Dragonfly és compatible amb totes les ordres de Memcached excepte CAS (verificar i configurar), brinda suport per a operacions asincròniques per crear instantànies, proporciona un consum de memòria predictible, proporciona un intèrpret de Lua 5.4 incorporat i admet tipus de dades complexes com hashes, conjunts i llistes (ZSET, HSET, LIST, SETS i STRING).

Per separat, està disponible un mode d'emmagatzematge a la memòria cau, en què les dades antigues es reemplacen automàticament per altres de noves una vegada que s'esgota la memòria lliure. És possible vincular a les dades de per vida durant les quals les dades es consideren rellevants.

L'estat d'emmagatzematge es pot buidar al disc en segon pla per a una recuperació posterior després d'un reinici. Per administrar el sistema, es proporciona una consola HTTP (s'uneix al port TCP 6379) i una API per tornar mètriques compatibles amb Prometheus. En versions futures, planegem ampliar la compatibilitat amb les ordres de Redis i implementar la capacitat de replicar l'emmagatzematge per a la commutació per error i l'equilibri de càrrega.

Finalment si estàs interessat a poder conèixer-ne més, has de saber que el codi de Dragonfly està escrit en C/C++ i es distribueix sota la llicència BSL (Business Source License).

Pots consultar sobre el projecte en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.