Dragonfly, um sistema de cache de dados RAM

DragonFly

O Dragonfly é um armazenamento de dados na memória desenvolvido para cargas de trabalho de aplicativos modernos.

Há poucos dias foi anunciado lançamento do sistema de armazenamento de dados e cache em memória Dragonfly, que manipula dados no formato chave/valor e pode ser usado como uma solução leve para acelerar sites de alto carregamento, armazenando em cache consultas lentas para o DBMS e dados intermediários na RAM.

Dragonfly suporta os protocolos Memcached e Redis, permitindo que você use bibliotecas de cliente existentes e projetos de porta usando Memcached e Redis para Dragonfly sem ter que retrabalhar seu código.

Vale ressaltar que Dragonfly recentemente recebeu uma atualização, chegando a sua versão 1.0 e na qual destaca-se pela implementação de suporte para replicação de dados do servidor primário para o secundário.

Ao mesmo tempo, Libélula pode ser configurado para ser usado como armazenamento secundário que aceita dados do servidor principal baseado em Dragonfly e Redis. A API de gerenciamento de replicação é compatível com Redis e é baseada no uso dos comandos ROLE e REPLICAOF (SLAVEOF).

Sobre Libélula

O alto desempenho é alcançado graças a uma arquitetura multi-thread sem compartilhar recursos (shared-nothing), o que significa que um controlador separado é anexado a cada thread com seu próprio dado, que funciona sem mutexes ou spin-locks.

Bloqueios VLL leves são utilizados para garantir atomicidade ao lidar com múltiplas chaves, pois para armazenar as informações de forma eficiente na memória, utiliza-se a estrutura dashtable, que implementa uma espécie de tabelas hash particionadas.

Comparado ao Redis, o Dragonfly possui um aumento de desempenho de 25x (3,8 milhões de solicitações por segundo) em cargas de trabalho típicas em um ambiente Amazon EC2 c6gn.16xlarge. Comparado ao Memcached em um ambiente AWS c6gn.16xlarge, o Dragonfly foi capaz de concluir 4,7 vezes mais solicitações de gravação por segundo (3,8 milhões contra 806k) e 1,77 vezes mais solicitações de leitura por segundo (3,7 milhões contra 2,1 milhões).

Em testes de armazenamento de 5 GB, O Dragonfly exigia 30% menos memória do que o Redis. Durante a criação do snapshot usando o comando "bgsave", o consumo de memória aumenta, mas nos horários de pico era mantido quase três vezes menos do que no Redis, e a própria operação de gravação do snapshot é muito mais rápida (no caso do Redis). instantâneo foi gravado no Dragonfly em 30 segundos e no Redis – em 42 segundos).

Alguns Os recursos da libélula são:

  • Um modo de cache que substitui automaticamente os dados antigos por novos dados quando a memória livre é esgotada.
  • Suporte para ciclos de vida de vinculação de dados durante os quais os dados são considerados atualizados.
  • Suporte para liberar o estado de armazenamento para o disco em segundo plano para recuperação posterior após uma reinicialização.
  • A presença de um console HTTP (liga na porta TCP 6379) para gerenciamento do sistema e uma API para retorno de métricas, compatível com Prometheus.
  • Suporte para 185 comandos Redis, aproximadamente equivalente à funcionalidade da versão Redis 5.
  • Suporte para todos os comandos Memcached, exceto CAS (verificar e configurar).
  • Suporte para operações assíncronas para criar instantâneos.
  • Consumo de memória previsível.
  • Interpretador Lua integrado 5.4.
  • Suporte para tipos de dados complexos, como hashes, conjuntos, listas (ZSET, HSET, LIST, SETS e STRING) e dados JSON.
  • Suporte de replicação de armazenamento para failover e balanceamento de carga.

Para aqueles interessados ​​no código Dragonfly, você deve saber que este é escrito em C/C++ e é distribuído sob licença BSL .A essência do BSL é que o código de funcionalidade estendida está inicialmente disponível para modificação, mas por algum tempo pode ser usado gratuitamente apenas sujeito a condições adicionais, que exigem a compra de uma licença comercial para contornar.

Os termos de licença adicional do projeto Dragonfly exigem que o código seja migrado para a Licença Apache 2.0 em 15 de março de 2028. Até então, a licença permite o uso do código apenas para garantir o funcionamento de seus serviços e produtos, mas proíbe o uso para criar serviços em nuvem que funcionam como um plug-in para o Dragonfly.

Finalmente se você estiver interessado em saber um pouco mais sobre isso, você pode verificar os detalhes no link a seguir


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.