Sobre el proyecto
Dragonfly es un almacén de datos en memoria de código abierto desarrollado por DragonflyDB. El proyecto lo posiciona como un reemplazo moderno de Redis y Memcached, dirigido a cargas de trabajo de aplicaciones modernas. Según el README, es totalmente compatible con las API de Redis y Memcached y no requiere cambios de código para adoptarlo. Implementa aproximadamente 185 comandos de Redis, descritos como comparables a la API de Redis 5.0, y 13 comandos de Memcached. Admite argumentos comunes de Redis como port, bind, requirepass, maxmemory, dir y dbfilename, además de opciones específicas de Dragonfly, incluyendo memcached_port, cache_mode, dbnum, snapshot_cron, admin_port y un modo de cluster emulado.
El diseño utiliza una arquitectura sin estado compartido: el espacio de claves se particiona entre hilos, cada uno gestionando su propio shard de diccionario. Para operaciones atómicas de múltiples claves, el README indica que Dragonfly utiliza ideas del paper de VLL lock-manager para evitar mutex y spinlocks. Su tabla hash central está basada en el paper Dash y se adapta para preservar los comportamientos del diccionario de Redis, como el hashing incremental durante el crecimiento y el escaneo sin estado bajo cambios, mientras admite una expiración de TTL eficiente, un algoritmo de expulsión de caché y snapshots sin fork. El modo de caché se habilita con --cache_mode=true y expulsa elementos cerca del límite de maxmemory.
Operativamente, Dragonfly puede exponer una consola HTTP en su puerto TCP principal y proporciona métricas compatibles con Prometheus en :6379/metrics, con un dashboard de Grafana incluido. El snapshotting se puede programar mediante snapshot_cron. El README también documenta comparaciones de recursos y rendimiento: reporta hasta 25 veces más rendimiento que Redis de un solo proceso, 3.8M QPS en c6gn.16xlarge, 10M SET y 15M GET QPS en modo pipeline, y snapshots eficientes en memoria. Estas cifras son benchmarks del proyecto y no están verificadas de forma independiente aquí. El proyecto ofrece binarios de Docker y CLI, documentación, una comunidad de Discord e instrucciones de construcción de código fuente.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.