Você está na página 1de 4

Aluno: Rafael Alves Machado Costa Matricula: 5305922

Tipos de Bancos de Dados no relacional abordados: Cassandra, MongoDB, CouchDB

Cassandra
O Cassandra um sistema de banco de dados baseado na abordagem NoSQL. Existem alguns
tipos diferentes de NoSQL, sendo que o Cassandra baseado no tipo chave/valor. Nesse tipo de
banco de dados, os dados so identificados atravs de uma chave. A principal promessa do
Cassandra de prover um sistema de armazenamento distribudo, altamente escalvel e
eventualmente consistente. Para garantir essas promessas, foram unidas caractersticas de dois
sistemas NoSQL, o BigTable do Google e o Dynamo da Amazon. Esse sistema foi criado no
Facebook em 2008, por Avinash Lakshman e Prashant Malik. Foi bastante usado no prprio
Facebook para tornar a busca de mensagens mais robusta. No final de 2010 seu uso no Facebook
foi descontinuado. Hoje em dia utilizada uma outra soluo NoSQL no lugar do Cassandra. No
Cassandra, os dados so indexados por uma chave do tipo String. Essa chave referencia uma
linha, onde os dados se encontram, sendo que em cada linha os dados so divididos em colunas e
famlias de colunas. Cada coluna no Cassandra tem um nome, que a identifica, um valor e um
timestamp, sendo que tanto o valor quanto o timestamp so fornecidos pela aplicao cliente
quando um dado inserido. Alm disso, uma aplicao pode criar uma coluna em tempo de
execuo, sem precisar declarar ou alterar nada, ou seja, basta informar um valor para essa nova
coluna para uma dada chave.
Para garantir que um grande volume de dados seja tratado de forma rpida e eficiente, o
Cassandra possui por trs uma arquitetura bastante robusta e complexa. Essa arquitetura
composta por diversos sistemas distribudos que garantem que cada parte do sistema funcione
corretamente. Quando uma requisio de leitura ou escrita feita, qualquer n do cluster pode
trat-la. Atravs da chave, o n que atendeu a requisio consegue saber quais ns possuem
informaes dos dados. O sistema ento aguarda at que um nmero configurado de rplicas,
chamado quorum, responder com o dado, no caso de leitura; ou responder com uma confirmao,
no caso de uma escrita.
Para demonstrar o uso do Cassandra em cenrios reais, foram selecionados trs estudos de caso
de trs grandes servios oferecidos na Internet: o Facebook , o Twitter e o Reddit.
A. Facebook - O Facebook utilizou o Cassandra para agilizar seu novo sistema de busca de
mensagens [6], lanado em 2008. O cluster utilizado tinha cerca de 600 ncleos, armazenando
cerca de 150 terabytes de dados. Na poca do uso, o sistema conseguia aguentar bem o uso da
busca pelos 250 milhes de usurios da rede social. Em novembro de 2010, uma nova verso do
sistema de mensagens do Facebook foi lanado [7]. Durante o desenvolvimento dessa nova
verso, foram testados trs sistemas de armazenamento de dados diferentes: o j bastante
conhecido e relacional MySQL, o Cassandra e o HBase, que tambm utiliza a abordagem NoSQL.
Depois dos vrios testes realizados, a equipe do Facebook optou por utilizar o HBase como seu
novo sistema de banco de dados, por ser bastante escalvel, ter um bom balanceamento de
carga, ter boa performance, entre outros fatores.
B. Twitter - Alm do Facebook, o Twitter [8] tambm passou a usar o Cassandra no lugar do
MySQL. O uso, porm, no no armazenamento dos tweets em si, mas sim em alguns servios
internos da rede social. Um dos exemplos de uso fornecidos pelo Twitter em um sistema de
anlise de tweets por regio para gerar os termos mais postados em uma certa regio.
C. Reddit - O Reddit, um site de publicaes sociais, recentemente teve um problema com seu
sistema de cache [9]. Esse sistema utilizava o banco de dados memcachedb, que tambm do
tipo NoSQL. Porm, o banco de dados comeou a apresentar problemas de escalabilidade e, para
resolver esses problemas, a equipe do Reddit resolveu abandonar seu uso e migrar todo o sistema
de cache para o Cassandra, por ser mais rpido e mais escalvel que a soluo anterior. Depois
de um tempo rodando essa nova soluo utilizando o Cassandra, o Reddit comeou a ter alguns
problemas [10] com um sistema de cache anterior (que atende as requisies antes do
Cassandra, ou seja, um cache do Cassandra) o que levou a uma sobrecarga do Cassandra. A

soluo de adicionar mais ns para diminuir a carga no funcionaria devido a detalhes da


inicializao do Cassandra, portanto foi necessrio esperar a carga diminuir para que novas
instncias fossem iniciadas. Mesmo aps esse problema, o Reddit continua a utilizar o Cassandra
em seu sistema de cache.

MongoDB
MongoDB, lanada em 2009, um banco de dados orientado a documentos, escalvel, de alta
performance e livre de esquemas. Podemos resumir o MongoDB nas caractersticas: Open Source;
Alta Performance; Schema (Esquema) Aberto - para fcil evoluo do esquema; Banco de Dados
Orientado a Documento; Preparador para trabalhar na nuvem.
MongoGB um banco de dados de documento, e isto quer dizer que podemos armazenar dados
como documentos.
E o que so documentos? So as unidades bsicas de armazenamento e estes no utilizam
necessariamente qualquer tipo de estruturao pr-definida, como o caso das tabelas do
Modelo Relacional. Ou seja, o MongoDB armazena colees de documentos. Um documento, em
geral, um objeto com um identificador nico acrescido de um conjunto de campos, que podem
ser strings, listas ou documentos aninhados. Neste modelo temos um conjunto de documentos e
em cada documento temos um conjunto de campos (chaves) e o valor deste campo. Outra
caracterstica importante que este modelo no depende de um esquema rgido, ou seja, no
exige uma estrutura fixa como ocorre nos bancos tradicionais, os relacionais. Assim, possvel
que ocorra uma atualizao na estrutura do documento, com a adio de novos campos, por
exemplo, sem causar problemas na estrutura do banco de dados. Esta flexibilidade uma das
grandes vantagens deste modelo.
O MongoDB um destes bancos que utiliza o modelo de armazenamento orientado a documento
que armazena documentos no estilo parecido JSON chamado BSON, como documentos com
esquemas dinmicos, quer dizer que eu no preciso ter a mesma estrutura em casa registro. O
objetivo

do MongoDB

preencher

a lacuna

entre

valores/chave lojas (que so

rpidos e

escalonveis) e bancos de dados relacionais (que tm a funcionalidade rica). Atualizaes inplace rpidas, ou seja, uma transao atmica.
Quem trabalha muito com Banco de Dados Relacionais o MongoDB uma boa quebra de
paradigma j que ele no possui schema o que quer dizer que no necessrio estipular a
estrutura dos dados ao criar o banco, basta adicionar o documento(JSON) contendo os campos
desejados, inclusive um documento pode conter outros documentos.
Quem est usando? Podemos citar alguns exemplos:

The New York Times: utiliza o MongoDB para sua aplicao de submisso de fotos;

Foursquare: usa MongoDB para armazenar os locais, dados dos usurios e os "check-ins",
dividindo os dados em cerca de 25 mquinas na Amazon EC2;

Expedia: uso em seu sistema de planejamento de viagens;

Linkedin: utiliza o MongoDB na LearnIn, sua plataforma interna de aprendizagem.

e-Harmony: com 51 milhes de usurios, o uso do MongoDB em seu sistema de


pareamento de pretendentes reduziu o tempo de execuo do algoritmo em 95%, de 2
semanas para apenas 12 horas.

CouchDB
CouchDB um sistema de software livre de gerenciamento de banco de dados orientado a
documentos que pode ser acessado atravs da API de JavaScript Object Notation (JSON) RESTful.
O termo "Couch" um acrnimo para "Cluster Of Unreliable Commodity Hardware", que reflete a
meta

do

CouchDB

de

ser

extremamente

escalvel,

oferecendo

alta

disponibilidade

confiabilidade, mesmo ao executar em hardware que est geralmente sujeito falhar. O CouchDB
foi gravado originalmente em C++, mas em abril de 2008, o projeto foi movido para a plataforma
Erlang OTP devido sua nfase em tolerncia a falhas.
O CouchDB construdo em um poderoso mecanismo de armazenamento B-tree, que
responsvel por manter os dados do CouchDB classificados e fornece um mecanismo para
procurar, inserir e excluir em tempo amortizado de forma logartmica. O CouchDB usa esse
mecanismo para todos os dados internos, documentos e visualizaes.
Devido maneira livre de esquema na qual o banco de dados est estruturado, o CouchDB
depende do uso de visualizaes para criar relacionamentos arbitrrios entre documentos e para
fornecer recursos de agregao e relatrio. Os resultados dessas visualizaes so computados
usando Mapear/Reduzir, um modelo para processar e gerar grandes conjuntos de dados usando
computao distribuda. O modelo Mapear/Reduzir foi introduzido pela Google e pode ser dividido
na etapa Mapear e na etapa Reduzir. Na etapa mapear, o documento captado pelo n principal
e o problema dividido em subproblemas. Esses subproblemas so, ento, distribudos por ns
trabalhadores, que solucionam o problema e retornam os resultados ao n principal. Na etapa
reduzir, o n principal capta os resultados recebidos dos ns trabalhadores e combina os mesmos
para obter um resultado geral e resposta para o problema original.As funes Mapear/Reduzir no
CouchDB produzem pares de chave/valor, permitindo que o CouchDB insira-os no mecanismo Btree, classificados por chaves. Isso permite consultas ultraeficientes por chave e aprimora o
desempenho de operaes no B-tree. Alm disso, isso tambm significa que os dados podem ser

particionados por muitos ns sem interferir com a capacidade de consultar cada n


individualmente.

Os sistemas de gerenciamento de banco de dados relacional tradicionais s vezes usam bloqueio


para gerenciar simultaneidade, impedindo que clientes acessem dados enquanto outro cliente
est atualizando esses dados. Isso impede que diversos clientes faam mudanas no mesmo
conjunto de dados ao mesmo tempo, mas em situaes que h muitos clientes usando o sistema
simultaneamente, bem comum que o banco de dados trave ao determinar qual cliente deve
receber o bloqueio e manter a ordem da fila de bloqueio. No CouchDB, no h nenhum
mecanismo de bloqueio, em vez disso, usa-se um mtodo referido como Multiversion concurrency
control (MVCC) onde cada cliente recebe uma captura instantnea da verso mais recente do
banco de dados. Isso significa que nenhuma mudana vista pelos outros usurios at a
transao ter sido consolidada. A maioria dos bancos de dados modernos comearam a mudar de
mecanismos de bloqueio para MVCC, incluindo o Oracle (desde a V7), o MySQL (quando usado
com InnoDB) e o Microsoft SQL Server 2005 e posterior.

O projeto Apache CouchDB ainda est no comeo. O CouchDB ainda considerado muito como
um software alfa. Posto isso, o CouchDB est se tornando cada vez mais popular em aplicativos
da Web, aplicativos para iPhone e aplicativos do Facebook. At o momento, poderosos software de
wiki, blog, frum de discusso e gerenciamento de documentos conseguiram solues
alternativas para que os bancos de dados relacionais armazenem dados orientados a
documentos, da forma mais eficiente possvel. medida que releases mais estveis do CouchDB
so disponibilizados, no entanto, torna-se uma proposta mais atraente como a opo de banco de
dados subjacente para esses tipos de software, removendo o esforo de gerenciamento de
reviso de documentos e alterando continuamente os requisitos.

Você também pode gostar