Sobre o projeto
Dragonfly é um armazenamento de dados em memória de código aberto desenvolvido pela DragonflyDB. O projeto o posiciona como um substituto moderno para Redis e Memcached, direcionado a cargas de trabalho de aplicativos modernos. De acordo com o README, ele é totalmente compatível com as APIs de Redis e Memcached e não requer alterações de código para adoção. Ele implementa aproximadamente 185 comandos de Redis, descritos como comparáveis à API de Redis 5.0, e 13 comandos de Memcached. Ele suporta argumentos comuns de Redis, como porta, bind, requirepass, maxmemory, dir e dbfilename, além de opções específicas do Dragonfly, incluindo memcached_port, cache_mode, dbnum, snapshot_cron, admin_port e um modo de cluster emulado.
O design utiliza uma arquitetura sem compartilhamento: o espaço de chaves é particionado entre threads, cada uma gerenciando seu próprio shard de dicionário. Para operações atômicas de várias chaves, o README afirma que o Dragonfly usa ideias do paper VLL lock-manager para evitar mutexes e spinlocks. Sua tabela hash central é baseada no paper Dash e é adaptada para preservar os comportamentos do dicionário Redis, como hashing incremental durante o crescimento e varredura sem estado sob mudanças, enquanto suporta expiração eficiente de TTL, um algoritmo de expulsão de cache e snapshots sem fork. O modo de cache é habilitado com --cache_mode=true e expulsa itens próximos ao limite de maxmemory.
Operacionalmente, o Dragonfly pode expor um console HTTP em sua porta TCP principal e fornece métricas compatíveis com Prometheus em :6379/metrics, com um dashboard Grafana incluído. O snapshotting pode ser agendado via snapshot_cron. O README também documenta comparações de recursos e desempenho: ele relata até 25 vezes mais rendimento que o Redis de processo único, 3,8M QPS em c6gn.16xlarge, 10M SET e 15M GET QPS no modo pipeline, e snapshots eficientes em memória. Esses números são benchmarks do projeto e não são verificados de forma independente aqui. O projeto oferece binários Docker e CLI, documentação, uma comunidade Discord e instruções de construção de fonte.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.