Dragonfly, un système de cache de données RAM

DragonFly

Dragonfly est un magasin de données en mémoire conçu pour les charges de travail des applications modernes.

Il y a quelques jours, il a été annoncé lancement du système de mise en cache et de stockage de données en mémoire Dragonfly, qui manipule les données au format clé/valeur et peut être utilisé comme une solution légère pour accélérer les sites à forte charge en mettant en cache les requêtes lentes dans le SGBD et les données intermédiaires dans la RAM.

Libellule prend en charge les protocoles Memcached et Redis, vous permettant d'utiliser des bibliothèques clientes existantes et de porter des projets utilisant Memcached et Redis vers Dragonfly sans avoir à retravailler votre code.

Il convient de mentionner que Dragonfly a récemment reçu une mise à jour, atteignant sa version 1.0 et dans laquelle se distingue par la mise en œuvre d'un support pour la réplication de données du serveur principal au serveur secondaire.

En même temps, Libellule peut être configuré pour être utilisé comme stockage secondaire qui accepte les données du serveur principal basé sur Dragonfly et Redis. L'API de gestion de la réplication est compatible avec Redis et repose sur l'utilisation des commandes ROLE et REPLICAOF (SLAVEOF).

À propos de Libellule

Des performances élevées sont obtenues grâce à une architecture multithread sans partager de ressources (shared-nothing), ce qui signifie qu'un contrôleur séparé est attaché à chaque thread avec sa propre donnée, qui fonctionne sans mutex ni spin-locks.

Les verrous VLL légers sont utilisés pour garantir l'atomicité lorsqu'il s'agit de plusieurs clés, car pour stocker efficacement les informations en mémoire, la structure dashtable est utilisée, qui implémente une sorte de tables de hachage partitionnées.

Par rapport à Redis, Dragonfly bénéficie d'une amélioration des performances 25x (3,8 millions de requêtes par seconde) sous des charges de travail typiques dans un environnement Amazon EC2 c6gn.16xlarge. Par rapport à Memcached dans un environnement AWS c6gn.16xlarge, Dragonfly a pu traiter 4,7 fois plus de requêtes d'écriture par seconde (3,8 millions contre 806 1,77) et 3,7 fois plus de requêtes de lecture par seconde (2,1 millions contre XNUMX millions).

Dans les tests de stockage de 5 Go, Dragonfly nécessitait 30 % de mémoire en moins que Redis. Lors de la création d'un instantané à l'aide de la commande "bgsave", la consommation de mémoire augmente, mais aux heures de pointe, elle était conservée presque trois fois moins que dans Redis, et l'opération d'écriture de l'instantané elle-même est beaucoup plus rapide (dans le cas de Redis). instantané a été écrit sur Dragonfly en 30 secondes, et Redis - en 42 secondes).

Certains Les fonctionnalités de Dragonfly sont :

  • Un mode de mise en cache qui remplace automatiquement les anciennes données par de nouvelles données une fois la mémoire libre épuisée.
  • Prise en charge des cycles de vie de liaison de données au cours desquels les données sont considérées comme à jour.
  • Prise en charge du vidage de l'état de stockage sur le disque en arrière-plan pour une récupération ultérieure après un redémarrage.
  • La présence d'une console HTTP (se lie sur le port TCP 6379) pour la gestion du système et d'une API pour le retour des métriques, compatible avec Prometheus.
  • Prise en charge de 185 commandes Redis, à peu près équivalentes à la fonctionnalité de la version Redis 5.
  • Prise en charge de toutes les commandes Memcached sauf CAS (vérifier et configurer).
  • Prise en charge des opérations asynchrones pour créer des instantanés.
  • Consommation de mémoire prévisible.
  • Interprète Lua intégré 5.4.
  • Prise en charge des types de données complexes tels que les hachages, les ensembles, les listes (ZSET, HSET, LIST, SETS et STRING) et les données JSON.
  • Prise en charge de la réplication du stockage pour le basculement et l'équilibrage de charge.

Pour ceux qui s'intéressent au code Dragonfly, sachez que ce est écrit en C/C++ et est distribué sous la licence BSL L'essence de BSL est que le code de fonctionnalité étendue est initialement disponible pour modification, mais pendant un certain temps, il ne peut être utilisé gratuitement que sous réserve de conditions supplémentaires, qui nécessitent l'achat d'une licence commerciale pour le contourner.

Les conditions de licence supplémentaires du projet Dragonfly exigent que le code soit migré vers la licence Apache 2.0 le 15 mars 2028. Jusque-là, la licence autorise l'utilisation du code uniquement pour assurer le fonctionnement de ses services et produits, mais interdit l'utilisation pour créer des services cloud qui agissent comme un plug-in pour Dragonfly.

Enfin si ça t'intéresse d'en savoir un peu plus, vous pouvez vérifier les détails dans le lien suivant


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.