Eu digo NoSQL :):)

Cada vez com maior protagonismo, o NoSQL (Not Only SQL) que está relacionado com bases de dados não relacionais, modelo que todos conhecemos e que é um padrão utilizado nos maiores fabricantes atuais, como Oracle, IBM, MIcrosoft e etc.

Porém com a explosão da internet e dos serviços web associado com o extermínio das limitações de armazenamento e trafego culminou numa nova gama de problemas, como processar grandes volumes de dados e com performance. Por exemplo:

imagina uma solução para o e-commerce da Amazon que possui mais de 10 milhões de clientes em horário de pico distribuídos em mais de 10 mil webservers (vamos assim assumir). E para servir todos esta carga um funil que seria uma base de dados relacional.

Um big problema né 🙂 🙂 para complicar um pouco mais, a plataforma tem que ser escalável.

Falando um pouquinho de história:

Isto é um problema na qual o Edgar Codd, criador do conceito de modelo relacional em 1970 não previu. O modelo relacional é baseado na teoria de conjuntos e na lógica de predicados. O NoSQL rompe um outro conceito relacional que é o da transação  ou ACID (Atomicidade, Consistência, Isolamento e Durabilidade).

Bem, numa base de dados relacional, temos dois principais custos para a elaboração de uma plataforma que atenda a tal demanda:

1º Grande Custo: Plano de disaster recovery.

2º Grande Custo: Infra-estrutura para atender a exigência de processamento. No caso do Oracle temos o RAC em que se consegue fazer um crescimento horizontal (pelo menos do serviço de instância), e em algumas outras bases de dados o crescimento têm que ser vertical (ou seja substituição total do hardware).

Uma solução que poderia-se imaginar era em dividir a informação em várias bases de dados e assim dividir os serviços, mas por outro lado, será que com a adição de mais uma camada necessária de integração traria agilidade de resposta para a necessidade do negócio?

Para este tipo de problemas as BDs NoSQL permitem soluções robustas e escaláveis, e com custos bem inferiores.

No nosso exemplo, a Amazon, foi criada a solução Amazon’s Dynamo. Em geral, neste tipo de base de dados, a integridade deve ser garantida por uma camada acima do motor de BD NoSQL.

Atualmente existem várias tecnologias e que atendem a diferentes tipos de problemas, vale a pena conferir algumas, como:

Bancos de dados NoSQL em dois tipos : distribuídos e não distribuídos.

Distribuidos: Amazon Dynamo, Scalaris, Voldemort, CouchDb, Riak, MongoDb, BigTable, Cassandra, HyperTable e HBase

Não distribuídos: Redis, Tokyo Tyrant, MemcacheDb e Amazon SimpleDb

Existem aqueles que armazenam dados em disco ou em memória:

Memória: Scalaris e Redis

Disco: CouchDb, MongoDb, Riak e Voldemort

Permite os dois tipos: BigTable, Cassandra, Hbase eHyperTable

Na corrida em defesa do modelo relacional a empresa VoltDB, promete encarar de frente. Este consegue ser 50x mais rápido que outros concorrentes relacionais, graças a utilização de processamento in-memory que elimina tarefas burocráticas (gerenciamento de buffer, logging e etc). Em testes, uma máquina foi capaz de processar 56.000 TPS e em um cluster com 12 máquinas 560.000 TPS o que permite uma escalabilidade linear. A grande vantagem é garantir a facilidade para os desenvolvedores e as demais vantagens que o modelo relacional permite.

Saudações Vascaínas….

Um comentário em “Eu digo NoSQL :):)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s