Dragonfly, un sistema d'emmagatzematge en memòria cau de dades a RAM

DragonFly

Dragonfly és un magatzem de dades en memòria creat per a càrregues de treball d'aplicacions modernes.

Fa pocs dies es va donar a conèixer el llançament del sistema d'emmagatzematge de dades i memòria cau en memòria Dragonfly, que manipula dades en el format clau/valor i es pot utilitzar com una solució lleugera per accelerar llocs d'alta càrrega, emmagatzemant en memòria cau consultes lentes al DBMS i dades intermèdies a RAM.

libèl·lula és compatible amb els protocols Memcached i Redis, el que us permet utilitzar biblioteques de clients existents i transferir projectes usant Memcached i Redis a Dragonfly sense haver de tornar a treballar en el codi.

cal esmentar que Dragonfly recentment va rebre una actualització, arribant aquest a la seva versió 1.0 i en la qual es destaca per la implementació de suport per a la replicació de dades des del servidor primari al secundari.

Al mateix temps, Dragonfly es pot configurar per utilitzar-se com a emmagatzematge secundari que accepta dades del servidor principal basat en Dragonfly i Redis. L'API d'administració de replicacions és compatible amb Redis i es basa en l'ús de les ordres ROLE i REPLICAOF (SLAVEOF).

Sobre Dragonfly

L'alt rendiment s'aconsegueix gràcies a una arquitectura de subprocessos múltiples sense compartir recursos (shared-nothing), cosa que implica que s'adjunta un controlador separat a cada subprocés amb la seva pròpia porció de dades, que funciona sense mutexs ni spin-locks.

Els cadenats VLL lleugers s'utilitzen per garantir l'atomicitat quan es tracta de diverses claus, ja que per emmagatzemar la informació de manera eficient a la memòria, s'utilitza l'estructura dashtable, que implementa una mena de taules hash particionades.

En comparació amb Redis, Dragonfly presumeix d'un augment de rendiment de 25 vegades (3,8 milions de sol·licituds per segon) sota càrregues de treball típiques en un entorn Amazon EC2 c6gn.16xlarge. En comparació amb Memcached en un entorn d'AWS c6gn.16xlarge, Dragonfly va poder completar 4,7 vegades més sol·licituds d'escriptura per segon (3,8 milions davant de 806k) i 1,77 vegades més sol·licituds de lectura per segon (3,7 milions davant de 2,1 milions).

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ò en els moments pic es va mantenir 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).

Algunes característiques de Dragonfly són:

  • Un mode d'emmagatzematge en memòria cau que reemplaça automàticament les dades antigues amb dades noves una vegada s'esgota la memòria lliure.
  • Compatibilitat amb cicles de vida de vinculació de dades durant els quals les dades es consideren actualitzades.
  • Suport per buidar l'estat d'emmagatzematge al disc en segon pla per a una recuperació posterior després d'un reinici.
  • La presència d'una consola HTTP (s'uneix al port TCP 6379) per a la gestió del sistema i una API per tornar mètriques, compatible amb Prometheus.
  • Compatibilitat amb 185 ordres de Redis, aproximadament equivalent a la funcionalitat de la versió Redis 5.
  • Compatibilitat amb totes les ordres de Memcached excepte CAS (verificar i configurar).
  • Compatibilitat amb operacions asincròniques per crear instantànies.
  • Consum de memòria predictible.
  • Intèrpret Lua integrat 5.4.
  • Compatibilitat amb tipus de dades complexes com hashes, conjunts, llistes (ZSET, HSET, LIST, SETS i STRING) i dades JSON.
  • Suport de replicació demmagatzematge per a commutació per error i equilibri de càrrega.

Per als interessats en el codi de Dragonfly, han de saber que aquest està escrit en C/C++ i es distribueix sota la llicència BSL .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 exigeixen que el codi es migri a la llicència Apache 2.0 el 15 de març de 2028. 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.

Finalment si estàs interessat a poder conèixer una mica més sobre això, Pots consultar els detalls al 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ó.