A plataforma de banco de dados Couchbase oferece suporte a dois mecanismos de armazenamento: Couchstore, o padrão, e Magma, o mecanismo lançado recentemente. Ambos oferecem benefícios em vários cenários. Esta postagem do blog apresenta uma breve visão geral do novo mecanismo de armazenamento Magma, fornece uma comparação de cada mecanismo e resume os resultados do referências de desempenho. 

O Couchstore é um mecanismo de armazenamento maduro que é otimizado para alto desempenho com grandes conjuntos de dados, especialmente aqueles que cabem na memória. O tamanho mínimo do bucket para o Couchstore é de 100 MB. Ele é ideal para casos de uso de cache e situações em que a compactação de dados não é o principal fator decisivo. 

O Magma é um novo mecanismo de armazenamento projetado para ter alto desempenho, mesmo com conjuntos de dados muito grandes que não cabem na memória. Ele é transcendente para casos de uso em que o acesso ao disco é fundamental. O Magma é otimizado para ser executado em quantidades muito baixas de memória, mesmo com conjuntos de dados muito grandes. O Magma realmente se destaca quando usado para conjuntos de dados que não cabem na memória disponível e que exigem compactação máxima de dados.

Abaixo está uma tabela comparativa que resume cada mecanismo de armazenamento.

Comparação entre Couchstore e Magma

Critérios Loja de sofás Magma
Cota mínima de memória do bucket 100 MB 1 GB
Relação mínima entre memória e dados 10% 1%
Máximo de dados por nó 3TB 10 TB
Otimização do tamanho dos dados Melhor quando o conjunto de dados de trabalho cabe na memória Melhor quando o o conjunto de trabalho é muito maior do que a memória disponível e você precisa apenas da velocidade de acesso ao disco
Armazenar e acessar Acesse dados de até ~ 1 TB Armazenar e acessar vários terabytes de dados
Hardware Pode ser executado em hardware de baixo custo Preferencialmente, hardware de qualidade
Serviços com suporte Todos os serviços, incluindo pesquisa de texto completo, eventos e análises, estão disponíveis Todos os serviços, incluindo pesquisa de texto completo, eventos e análises, estão disponíveis com a versão 7.1.2 GA
Persistência de dados A maioria dos dados é acessada a partir do cache de memória Os aplicativos precisam de grandes quantidades de dados persistentes e duráveis
Casos de uso O caso de uso requer principalmente acesso à memória O caso de uso requer principalmente acesso ao disco

Visão geral do Magma

O Magma é o mecanismo de armazenamento de documentos de última geração do Couchbase Server. Ele foi projetado com o objetivo de melhorar a densidade dos dados e o desempenho de gravação em cada nó do cluster. Ele atinge esses objetivos separando os dados de índice e de documento para minimizar a amplificação de gravação (WA). A amplificação de gravação está relacionada à gravação de dados no armazenamento de arquivos em que a gravação é multiplicada devido a fatores como dados imutáveis. O Magma também inclui um método de compactação incremental para manter o espaço e permitir uma alta densidade de dados e menores requisitos de memória. A redução da amplificação de gravação aumenta a taxa de transferência de gravação e também aumenta a expectativa de vida dos SSDs, reduzindo o número de ciclos de gravação e apagamento.

 Outras metas de design do projeto Magma incluíam:

Compactações simultâneas escalonáveis - A compactação total do banco de dados é uma operação cara. O gerenciamento de um banco de dados de alta densidade requer compactações pequenas, simultâneas e incrementais para recuperar espaço.

Otimização da unidade de estado sólido (SSD) - A E/S aleatória foi minimizada para ocorrer somente durante as operações de pesquisa de pontos. Enquanto os padrões de acesso de E/S de leitura e gravação sequenciais são aproveitados para tirar proveito de toda a largura de banda das SSDs.

Baixo consumo de memória - Os dados de alta densidade diminuem a possibilidade de cache de leitura e gravação. Portanto, o Magma é otimizado para utilizar uma pequena área de memória.

Coleta de lixo - O Magma inclui um método para estimar a fragmentação no armazenamento de objetos estruturados em log e calcular com precisão a fragmentação do disco. Isso é usado para calcular o tamanho do lixo por segmento de registro que aciona as compactações quando a fragmentação atinge um limite de 50%.

Um aspecto importante da arquitetura do Magma é o armazenamento de objetos estruturados em log, que armazena documentos em um log segmentado somente para anexos. O armazenamento estruturado em log mantém um índice que permite a consulta de um documento por seqno (número de sequência). O armazenamento de objetos contém arquivos de segmento de log que são organizados sequencialmente usando um log crescente com uma cauda para aceitar gravações de entrada (consulte o diagrama de arquitetura do armazenamento de objetos do Magma abaixo). O thread em segundo plano anexa as mutações de documentos ao log de cauda, com cada documento recebendo um segno exclusivo. 

Magma object store architecture

Arquitetura do armazenamento de objetos Magma

 

Embora o registro possa conter várias versões imutáveis de documentos com a mesma chave, as versões mais antigas do documento tornam-se obsoletas quando novas versões são anexadas. As operações de leitura sempre leem a versão mais recente, portanto, quando uma pesquisa de chave é realizada, a versão mais recente do documento é retornada. Eventualmente, os registros obsoletos são removidos do armazenamento e um processo separado de coleta de lixo é usado para recuperar espaço.

Resumo do desempenho

O Magma foi testado quanto ao desempenho em relação ao RocksDB e ao Couchstore. A avaliação se concentrou na taxa de transferência e na amplificação de gravação e espaço para várias cargas de trabalho do Yahoo! Cloud Serving Benchmark (YCSB) com dados grandes demais para caber na memória. Durante duas rodadas de testes, as conclusões foram as seguintes:

Primeira rodada

      • O Magma é 1,77 vezes mais rápido e tem 3,38 vezes menos amplificação de gravação do que o RocksDB
      • O Magma é 36 vezes mais rápido e tem 5 vezes menos amplificação de gravação do que o Couchstore

Segunda rodada

      • O Magma é 1,25 vezes mais rápido e tem 2,36 vezes menos amplificação de gravação do que o RocksDB
      • O Magma é 21 vezes mais rápido e tem 3,37 vezes menos amplificação de gravação do que o Couchstore

Conclusão

Com as melhorias de eficiência no Magma, a densidade de dados de uma única máquina suportada pelo Couchbase Server foi aumentada em 3,3 vezes e o requisito de memória em 10 vezes, o que reduziu o custo total de propriedade (TCO) em até 10 vezes. Os resultados da avaliação de desempenho mostraram que o Magma superou os mecanismos do Couchstore e do RocksDB em cargas de trabalho YCSB de gravação pesada com conjuntos de dados muito grandes para a memória.

Para saber mais sobre o mecanismo de armazenamento de documentos de última geração, consulte o documento a seguir: Magma: Um mecanismo de armazenamento de alta densidade de dados usado no Couchbase. Obrigado por dedicar seu tempo para saber por que o Magma É o mecanismo de armazenamento de documentos da próxima geração!

 

Autor

Postado por Marketing de produto do Couchbase

Deixar uma resposta