Armazenamento Garnet de código aberto da Microsoft compatível com Redis

A Microsoft tornou público o código-fonte do sistema NoSQL Garnet, projetado para a criação de armazenamentos em cache e compatível com as bibliotecas de cliente existentes para o armazenamento Redis. O Garnet suporta a criação de clusters escaláveis ​​para cache de dados, que podem utilizar replicação, migração de chaves e fragmentação de dados entre os nós do cluster. O projeto é escrito em C# com um mecanismo de armazenamento em C++, é de código aberto sob a licença MIT e pode ser executado em todas as plataformas suportadas pelo .NET (as principais plataformas são: Linux и Windows).

Para armazenar dados, é utilizado o mecanismo Tsavorite (um fork do armazenamento Microsoft FASTER), que suporta processamento de consultas multithread, transações, correção de alterações em modo sem bloqueio (checkpointing), recuperação de falhas, salvamento de cópias redundantes e manutenção de um registro de operações. O mecanismo de rede do Garnet é construído usando a arquitetura de memória compartilhada proposta pelo projeto de pesquisa ShadowFax. O processamento TLS e a interação com o armazenamento são realizados em um único thread, o que permite evitar a sobrecarga de comutação de threads e utilizar de forma mais eficiente o cache da CPU na transferência de dados pela rede.

A arquitetura Garnet separa a lógica de análise e processamento de solicitações das operações de armazenamento. Os dados são armazenados usando dois armazenamentos de valores-chave baseados na biblioteca Tsavorite. O primeiro armazenamento "principal" é otimizado para operações rápidas de string, e o segundo armazenamento "objeto" é otimizado para acomodar objetos complexos e tipos de dados avançados, como hashes e listas. Os tipos de dados no segundo armazenamento são implementados usando bibliotecas .NET. Os dados são armazenados no heap (heap C#), o que permite que sejam atualizados de forma eficiente e em formato serializado no disco.

Armazenamento Garnet de código aberto da Microsoft compatível com Redis

Características da Granada:

  • É possível implantar armazenamento em várias camadas, abrangendo RAM, unidades SSD e armazenamento em nuvem, em que dados menos solicitados são colocados em armazenamento lento para criar caches maiores que a RAM.
  • Suporte extensível a dispositivos, permitindo a criação de camadas otimizadas para funcionar com diferentes dispositivos, por exemplo, existem camadas para SDD, discos rígidos e armazenamento em nuvem Azure Storage.
  • Um mecanismo eficiente para reaproveitar o espaço liberado na RAM, evitando a fragmentação.
  • Limites configuráveis ​​no tamanho da memória usada para índices, logs e armazenamento de objetos.
  • O protocolo RESP é usado para acessar o armazenamento, o que permite que o Garnet seja usado com clientes Redis não modificados.
  • Suporta o armazenamento de valores de string e estruturas de dados complexas, como listas, hashes, conjuntos, listas classificadas e dados de geolocalização. Capacidade de determinar a vida útil da chave.
  • Disponibilização de APIs para realização de consultas analíticas (HLL/Hyperloglog, Bitmap), transações (MULTI/EXEC) e utilização do paradigma de publicação/assinatura.
  • Disponibilidade de meios para controle flexível de acesso via ACL.
  • Capacidade de definir configuração no formato JSON ou redis.conf.
  • Suporte para conectar manipuladores de rede adicionais. Capacidade de criptografar o tráfego usando TLS (baseado em SslStream).
  • A capacidade de criar extensões em C# que implementam operações adicionais com strings e objetos.
  • Suporte para procedimentos armazenados transacionais que abrangem várias chaves.
  • Capacidade de restaurar o estado de uma posição salva anteriormente (recuperação de ponto de verificação). A presença de um modo de arquivo somente anexado (AOF, arquivo somente anexado), no qual todos os dados antigos permanecem disponíveis e não são substituídos.
  • Suporte para criação de cluster de armazenamento com replicação, sharding, migração dinâmica de chaves entre nós e recuperação de nós com falha.
  • Alto desempenho e baixa latência na execução de consultas. Processamento eficiente de pequenos lotes de consultas com um grande número de sessões de clientes, permitindo uma taxa de transferência (número de consultas processadas por segundo) uma ordem de magnitude superior às soluções concorrentes. Ao executar em máquinas virtuais Na nuvem Azure, a latência do cliente não ultrapassa 300 microssegundos na maioria dos casos. Nos testes realizados, o Garnet supera significativamente o Redis, o Dragonfly e o KeyDB em desempenho e capacidade de resposta. Em alguns testes, o Garnet supera os sistemas concorrentes em até dez vezes.
    Armazenamento Garnet de código aberto da Microsoft compatível com Redis
    Armazenamento Garnet de código aberto da Microsoft compatível com Redis
    Armazenamento Garnet de código aberto da Microsoft compatível com Redis
    Armazenamento Garnet de código aberto da Microsoft compatível com Redis

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster