A NoSQL Battle — conclusão

A comparação final e a escolha do BD

Daniel Setton
Aug 23, 2017 · 4 min read

O processo todo da prova de conceito foi muito legal e bem educativo. Eu fiquei animado com as novas tecnologias experimentas. E mais ainda agora, que estou compartilhando iss com vocês.

Fala aí… quem ganhou?

Ah, eu sei que essa é a resposta que você mais quer saber, e eu já vou responder. Mas antes, quero relembrar as operações a serem executadas:

Operações principais:

  1. Inserir dados de um arquivo CSV

Testando

Eu executei essa sequência de testes algumas dezenas de vezes, na maioria dela com um arquivo de input de 5066 linhas. E executei mais algumas vezes os testes com 131717 linhas. No geral, os resultados foram parecidos no tocante a velocidade de execução e tempo de cada teste.

Resultados

Fiz uns gráficos de uma execução média, para facilitar a nossa comparação.

Infelizmente, como eu citei no último post, algumas queries do Aerospike ainda não estavam claras para mim com seriam feitas, então o Aerospike foi removido dos resultados finais, deixando o Aerospike de fora, nesse momento :(

Insert

Como vocês podem ver, na média de execuções, o ArangoDB foi quase 300 ms mais rápido que o Mongo

Step 1

Mesmo desconsiderando o pico no tempo de execução do Mongo, o ArangoDB ainda se manteve mais rápido na média das execuções.

Step 2

Convenhamos, de 2 ms para 4 ms não representa praticamente nenhuma diferença. E, quando executamos os testes com 131717 linhas, a variação do tempo também não foi grande.

Step 3

Mais um exemplo onde a diferença é bem pequena.

Step 4

Aqui a diferença não foi pequena. A vez que o Mongo foi mais rápido, ele ainda assim foi mais devagar que a vez que o Arango foi mais devagar.

Step 5

Como o pico de lentidão do Mongo foi a primeira execução, isso pode ser um indicativo de cache do banco de dados. Ponto positivo pela melhora da performance ao longo do tempo. Por outro lado, ponto negativo, já que nós não imaginamos o usuário repetindo essa ação várias vezes consecutivamente.

Step 6

Nesse cenário, o Mongo é bem mais consistente e rápido. Ponto pro Mongo.

Step 7

Fechando os testes, o último passo mostra o Arango mais rápido novamente. E a diferença não é tão pequena.

Conclusão

Ambos os BDs são muito bons. Eu gostei de trabalhar com ambos e acho que os 2 podem ser usados em produção. O AQL do ArangoDB é fácil de aprender e trabalhar, assim como a possibilidade de ter vários modelos de NoSQL. E o Mongo já é um padrão do mercado, sendo fácil achar documentação e exemplos.

E aí??? Qual a escolha?

Conta logo #pelamordedeusqueeunãoaguentomaislerenãosaber

Diferentemente do que eu esperava, o ArangoDB foi mais rápido em 5 das 8 operações. O problema é que na operação que ele foi mais lento (step 6) é a operação que, quando usada — e ela deve ser usada com certa frequencia — vai causar um impacto de tempo grande para nossos clientes, especialmente pela diferença de tempos de execução entre o Mongo e o Arango. O Mongo foi consideravelmente mais rápido. E, nos testes com mais dados (até pouco mais que 130k linhas), a diferença de tempo aumentou de forma não proporcional (quanto mais dados, mais lento o Arango era em comparação com o Mongo).

And the Oscar goes to…… MongoDB!

NOGORD.IO

The Nogord.io publication

)

Daniel Setton

Written by

Passionate about technology and entrepreneurship

NOGORD.IO

NOGORD.IO

The Nogord.io publication

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade