Le projet Dragonfly développe un remplacement plus rapide de Redis et Memcached.

La premiĂšre version du systĂšme de mise en cache des donnĂ©es en mĂ©moire vive Dragonfly est dĂ©sormais disponible, offrant la prise en charge des protocoles Memcached et Redis, tout en permettant d'effectuer des requĂȘtes avec une performance bien supĂ©rieure et une consommation de mĂ©moire rĂ©duite. Le systĂšme manipule les donnĂ©es au format clĂ©/valeur et peut ĂȘtre utilisĂ© comme une solution lĂ©gĂšre pour accĂ©lĂ©rer le fonctionnement de sites Ă  fort trafic, en mettant en cache les requĂȘtes lentes vers les bases de donnĂ©es et les donnĂ©es intermĂ©diaires en mĂ©moire. Le code de Dragonfly est Ă©crit en C/C++ et est distribuĂ© sous la licence BSL (Business Source License).

La licence BSL a Ă©tĂ© proposĂ©e par les cofondateurs de MySQL comme alternative au modĂšle Open Core. Le principe de la BSL est que le code des fonctionnalitĂ©s avancĂ©es est initialement disponible pour modifications, mais pendant un certain temps, il peut ĂȘtre utilisĂ© gratuitement uniquement sous certaines conditions, ce qui nĂ©cessite l'achat d'une licence commerciale pour contourner ces conditions. Les conditions de licence supplĂ©mentaires du projet Dragonfly prĂ©voient que le code soit transfĂ©rĂ© Ă  la licence Apache 2.0 uniquement le 1er juin 2027. Jusqu'Ă  cette date, la licence autorise l'utilisation du code uniquement pour faire fonctionner ses propres services et produits, mais interdit l'utilisation pour crĂ©er des services cloud payants reposant sur Dragonfly.

Selon les dĂ©veloppeurs et les tests rĂ©alisĂ©s, Dragonfly prĂ©tend ĂȘtre le systĂšme de stockage en mĂ©moire le plus rapide. ComparĂ© Ă  Redis, Dragonfly a rĂ©ussi Ă  obtenir une augmentation de performance de 25 fois et une rĂ©duction de la consommation de mĂ©moire de trois fois sous des charges typiques. serveur Dragonfly peut traiter des millions de requĂȘtes par seconde, par exemple, dans un environnement Amazon EC2 c6gn.16xlarge, une performance de 3,8 millions de requĂȘtes par seconde a Ă©tĂ© atteinte.

Le projet Dragonfly développe un remplacement plus rapide de Redis et Memcached.

Dans des tests de stockage de 5 Go de données, Dragonfly a nécessité 30 % de mémoire en moins que Redis. Lors de la création de snapshots par l'équipe « bgsave », la consommation de mémoire augmente, mais durant les pics, elle reste presque trois fois inférieure à celle de Redis, et l'opération d'enregistrement du snapshot se déroule beaucoup plus rapidement (dans le test, le snapshot dans Dragonfly a été enregistré en 30 secondes, tandis que Redis a mis 42 secondes).

Le projet Dragonfly développe un remplacement plus rapide de Redis et Memcached.

Une performance Ă©levĂ©e est atteinte grĂące Ă  une architecture multithread sans partage de ressources (shared-nothing), impliquant qu'un gestionnaire sĂ©parĂ©, avec sa propre portion de donnĂ©es, est associĂ© Ă  chaque thread, fonctionnant sans mutex ni spin-locks. Pour garantir l'atomicitĂ© lors de la manipulation de plusieurs clĂ©s, des verrous lĂ©gers VLL sont utilisĂ©s. Une structure dashtable, qui met en Ɠuvre une variĂ©tĂ© de tables de hachage partitionnĂ©es, est appliquĂ©e pour un stockage efficace des informations en mĂ©moire.

Parmi les fonctionnalités disponibles dans la premiÚre version, on note le support du protocole RESP2 et 130 commandes Redis, ce qui correspond à peu prÚs à la fonctionnalité de la version Redis 2.8. De plus, Dragonfly prend en charge toutes les commandes memcached, sauf CAS (check-and-set), offre un support pour les opérations asynchrones afin de créer des instantanés, garantit une consommation de mémoire prévisible, inclut un interpréteur Lua 5.4 intégré et prend en charge des types de données complexes tels que des hachages, des ensembles et des listes (ZSET, HSET, LIST, SETS et STRING).

Un mode de mise en cache est disponible, oĂč le remplacement des anciennes donnĂ©es par de nouvelles se fait automatiquement aprĂšs l'Ă©puisement de la mĂ©moire disponible. Il est possible d'attacher un temps de vie aux donnĂ©es, durant lequel celles-ci sont considĂ©rĂ©es comme valides. L'Ă©tat du stockage peut ĂȘtre sauvegardĂ© sur disque en arriĂšre-plan pour une restauration ultĂ©rieure aprĂšs un redĂ©marrage. Un console HTTP est fournie pour gĂ©rer le systĂšme (attachĂ©e au port TCP 6379) et une API compatible avec Prometheus pour fournir des mĂ©triques. Les prochaines versions prĂ©voient d'Ă©largir le support des commandes Redis et de mettre en Ɠuvre la possibilitĂ© de rĂ©plication du stockage pour garantir la tolĂ©rance aux pannes et l'Ă©quilibrage de charge.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster