Sem categoria

O que o MongoDB tem contra a transparência?

O MongoDB publicou outro benchmark realizado pela United Software Associates.

Os benchmarks são uma ferramenta útil para avaliar desempenho do banco de dados. Mas, para serem úteis, elas devem ser transparentes e repetíveis. Se não atenderem a esses padrões, os resultados serão questionáveis.

Em benchmarks recentes, o Couchbase e o MongoDB adotaram duas abordagens diferentes. O Couchbase documentou claramente a configuração completa e incluía os resultados de cada teste. O MongoDB não o fez.

As tabelas abaixo ilustram as diferentes abordagens adotadas pela Avalon Consulting, LLC e pela United Software Associates:

United Software Associates Avalon Consulting, LLC
YCSB
Entradas / Operações 400M / 100M 300M / 100M
Tamanho do valor Ausente 1K
Tamanho do conjunto de dados Ausente 286 GB
Distribuição de solicitações Zipfiano Uniforme
Banco de dados
Nós Ausente MongoDB: 9
Servidor Couchbase: 9
Réplicas Ausente 3 (1 primária, 2 secundárias)
Replicação Ausente MongoDB: Assíncrono
Servidor Couchbase: Async
Persistência Ausente MongoDB: Assíncrono
Servidor Couchbase: Async
Memória configurada (por nó) Ausente MongoDB: 30 GB
Servidor Couchbase: 30GB
Tamanho total do conjunto de dados (com réplicas) Ausente 858 GB
Dados primários residentes na memória Ausente 32%
Versão
Banco de dados MongoDB: 3.0.3
Servidor Couchbase: 3.0.2
MongoDB: 3.0.0
Servidor Couchbase: 3.0.2
Cliente MongoDB: 3.0.0
Servidor Couchbase: 2.1.2
MongoDB: 2.1.3
Servidor Couchbase: 2.1.0
Hardware
Servidores Banco de dados: 3
YCSB: 1
Banco de dados: 9x AWS EC2 i2.2xlarge
YCSB: 2-23x AWS EC2 r2.8xlarge
Processadores Ambos: 2x 3.0GHz Banco de dados: 8 vCPU (2,5 GHz)
YCSB: 32vCPU (2,5 GHz)
Memória Ambos: 96 GB Banco de dados: 61 GB
YCSB: 244 GB
Armazenamento Ambos: 2x 960GB SSD Banco de dados: 2x SSD de 800 GB
YCSB: 2x 320GB SSD
Trabalho em rede Ambos: 10GbE Ambos: alto
SO Ambos: Ubuntu 14.10 Banco de dados: CentOS 6
YCSB: Amazon Linux
SO
Páginas enormes transparentes (THP) Desativado Desativado
NUMA Desativado Desativado

Espero que o MongoDB e a DataStax me ajudem a aprimorar esse modelo para futuros benchmarks.

Resultados de benchmark da United Software Associates

Eles não publicaram os resultados de todos eles publicaram os resultados de um deles.

O benchmark indica que o número ideal de threads para cada banco de dados é 150 ou 350, dependendo da carga de trabalho, mas não indica o número de threads para os resultados publicados.

Carga de trabalho A Taxa de transferência

Fios MongoDB Servidor Couchbase
105 Ausente Ausente
140 Ausente Ausente
175 Ausente Ausente
210 Ausente Ausente
245 Ausente Ausente
280 Ausente Ausente
315 Ausente Ausente
350 Ausente Ausente

Resultados - Latência da carga de trabalho A

Fios MongoDB Servidor Couchbase
105 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
140 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
175 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
210 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
245 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
280 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
315 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing
350 Ler: Desaparecido
Escrever: Missing
Ler: Desaparecido
Escrever: Missing

Avalon Consulting, LLC Resultados de referência

Eles publicaram os resultados de todos testes e indicou o número de threads para eles.

Carga de trabalho A Taxa de transferência

Fios MongoDB Servidor Couchbase
105 61K 110K
140 65K 141K
175 67K 154K
210 70K 170K
245 74K 193K
280 Latência máxima excedida 238K
315 Latência máxima excedida 245K
350 Latência máxima excedida 252K

Resultados - Latência da carga de trabalho A

Fios MongoDB Servidor Couchbase
105 Leitura: 1,42 ms
Escrever: 2,05 ms
Leitura: 0,78ms
Gravação: 0,76 ms
140 Leitura: 2,01 ms
Gravação: 2,97 ms
Leitura: 0,79ms
Gravação: 0,78 ms
175 Leitura: 3,16 ms
Gravação: 3,54ms
Leitura: 0,89ms
Gravação: 0,88 ms
210 Leitura: 3,5 ms
Gravação: 4,49ms
Leitura: 0,93 ms
Gravação: 0,92 ms
245 Leitura: 4,19 ms
Gravação: 5,38ms
Leitura: 0,92 ms
Gravação: 0,91 ms
280 Latência máxima excedida Leitura: 0,92 ms
Gravação: 0,92 ms
315 Latência máxima excedida Leitura: 1,06 ms
Gravação: 0,99 ms
350 Latência máxima excedida Leitura: 1,22 ms
Gravação: 1,22 ms

Configuração de referência

Um benchmark, se você se importar, deve responder às seguintes perguntas:

  • Qual era a configuração do hardware?
  • Como o sistema operacional foi configurado?
  • Quais eram as versões do banco de dados e do cliente?
  • Como os bancos de dados foram configurados?
  • Como o YCSB foi configurado?

Então, qual configuração está faltando nesse benchmark da United Software Associates?

  • O número de nós
  • A configuração da réplica (# de réplicas
  • A configuração de replicação (assíncrona ou sincronizada)
  • A configuração de persistência (async ou sync)
  • O tamanho dos valores
  • O tamanho do conjunto de dados
  • O tamanho do cache (por nó)
  • O tamanho do conjunto total de dados (incluindo réplicas)
  • A porcentagem de dados primários residentes na memória
  • Os resultados de todas as execuções
  • O número de threads para todas as execuções publicadas

Além disso, o repositório do GitHub mencionado neste white paper da United Software Associates não inclui a configuração do cliente para MongoDB, Cassandra ou Couchbase Server.

E quanto aos roteadores e servidores de configuração do MongoDB?

Eles foram implantados? Se sim, onde?

Não sei, pois esse benchmark não inclui todos da configuração. A primeira referência incluído mais da configuração, mas havia uma série de erros. Com esse benchmark, eles podem ter corrigido os erros, mas não incluíram todos da configuração.

Linha de fundo

É importante que os benchmarks sejam confiáveis. Qualquer pessoa deve ser capaz de reproduzir um benchmark e validar seus resultados. Toda a configuração deve ser fornecida e, de preferência, deve ser realizada na infraestrutura de nuvem. Caso contrário, os fornecedores podem manipular a configuração para fazer com que as comparações injustas pareçam justas.

Isso não é útil para ninguém.

Recursos

MongoDB + Benchmark da United Software Associates
Livro Branco | Código

Couchbase + Avalon Consulting, LLC Benchmark
Livro Branco | Código

Discutir sobre Notícias Hacker

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Shane Johnson, diretor de marketing de produtos da Couchbase

Shane K Johnson foi diretor de marketing de produtos da Couchbase. Antes da Couchbase, ele ocupou várias funções de desenvolvimento e evangelismo com experiência em Java e sistemas distribuídos. Ele prestou consultoria a organizações dos setores financeiro, de varejo, telecomunicações e mídia para elaborar e implementar arquiteturas que dependiam de sistemas distribuídos para dados e análises.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.