Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Thiago Avelino
Tela cheia

Riak, alta performance NoSQL para seu projeto

23 de Dezembro de 2012, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 285 vezes

Riak Banco de dados NoSQL, focado em escalabilidade, disponibilidade e performanceEsse ano de 2012 ajudei a comunidade Riak que a cada dia esse banco de dados vem me surpreendendo. Estou para escrever um blogpost desde fevereiro, mas como vida de programador (pelo menos para mim esse ano) é agitada.

Resolvi falar sobre a performance nesse primeiro blogpost sobre Riak e colocar na mesa um teste (relativamente simples) para compara o tempo de inserção, realmente é um teste simples se tratando de NoSQL.

Antes de mostrar a comparação acho importante deixar claro as vantagens que temos em utilizar Riak:

  • Disponibilidade: sistema de recuperação de dados onde trabalha de forma inteligente para que esteja disponível para ler e escrever operações, mesmo em ambiente com falha, assim garantindo a integridade dos dados;
  • Tolerância a falhas: pode perder o acesso aos nós (Servidores Riak), devido à falha de rede ou partição de hardware e nunca perder de dados;
  • Simplicidade de utilização: facil adição de máquinas em um cluster Riak, sem ocorrer uma carga nos servidores – isso em um pequeno grupo de servidores como uma grande quantidade de servidores Riak;
  • Escalabilidade: Riak distribui automaticamente os dados ao redor do cluster e produz um aumento de desempenho quase linear quando você adicionar dados.

Depois de deixar claro os itens acima podemos colocar na messa o Riak e o grande MongoDB, lembrando que esse blogpost não é para falar qual NoSQL é melhor ou para você parar de utilizar um ou outro banco, Riak e MongoDB tem algumas características semelhantes, esse foi o motivo de colocar em teste os dois.

O teste foi simples preciso inserir 1 milhão (1000000) de registro no meu banco de dados, qual banco de dados entrega isso mais rápido para mim?

Código Python usando drive nativo do Riak:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import riak
 
 
 
client = riak.RiakClient()
bucket = client.bucket('test')
 
for i in range(0, 1000000):
person = bucket.new('riak_developer_%d' % i, data={'name': 'Thiago Avelino %d' % i,
'age': 18+i,
'language': ['python'],})
view raw riak.py This Gist brought to you by GitHub.

Código Python usano drive nativo do MongoDB:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from pymongo import MongoClient
 
 
 
connection = MongoClient()
db = connection.test
persons = db.persons
 
for i in range(0, 1000000):
person = persons.insert({'name': 'Thiago Avelino %d' % i,
'age': 18+i,
'language': ['python'],})
view raw mongodb.py This Gist brought to you by GitHub.

Um código simples onde faço um loop que vai de 0 a 1000000 (estou fazendo 1000001 inserção), e dentro de cada interação do loop estou gerando um registro no banco de dados. Veja abaixo o resultado:

1 2 3 4 5
(riak-test) ~/Sites/riak-test$ time python riak.py
python riak.py 15.60s user 0.14s system 99% cpu 15.850 total
 
(riak-test) ~/Sites/riak-test$ time python mongodb.py
python mongodb.py 144.14s user 35.47s system 55% cpu 5:25.85 total

Realmente o tempo de execução do Riak é muito mas muito rápido, o que me deixou mais surpreso foi o tempo do MongoDB, o MongoDB demorou 9 vezes mais comparado com o Riak.

Não estou falando que o MongoDB é ruim, ate mesmo que tenho projetos grande em produção usando ele e dependendo do projeto/infra recomendo usar MongoDB.

The post Riak, alta performance NoSQL para seu projeto appeared first on Thiago Avelino.


Fonte: http://feedproxy.google.com/~r/pyAvelino/~3/JPLa9HU1y8s/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.