O Apache Cassandra possu dentre suas caractersticas escalabilidade linear e alta disponibilidade sem comprometer o desempenho, tolerncia a falhas comprovada em hardware, banco de dados orientado por coluna que se baseia na distribuio no Amazon Dynamo e seu modelo de dados no Google Bigtable, alm de ser um banco robusto de grande armazenamento em clusters. BigTable: Baseado em colunas Criado pelo Google em 2004. Sem tabelas ou relacionamentos. Facilidade para particionar e replicar Altamente escalvel Atualmente, com a demanda de servios na Internet aumentou a utilizao por parte dos usurios principalmente em redes sociais. Para armazenar tantas informaes de milhes de pessoas so necessrios mltiplos servidores, data centers e nuvem para solucionar o problema com baixa latncia da rede, melhor balanceamento de carga e alta disponibilidade do servio. Cassandra uma Banco de Dados NoSql, ou seja no relacional desenvolvido originalmente para o Facebook, sua distribuio de dados em escala global possu consistncia, disponibilidade e tolerncia a falhas na rede. Com escalabilidade elstica permite acomodar mais clientes e consequentemente armazena mais dados de modo flexvel. Possu desempenho rpido em escala linear e fcil distribuio de dados por meio de replicao em vrios data centers, ou nuvem. de fcil configurao pois os ns permanecem em um s cluster, oferece atomicidade, isolamento e durabilidade como suporte a transaes.
Arquitetura Distribuda Baseada no Dynamo Amazon: Servio de banco de dados NoSql, rpido e totalmente gerenciado que permite armazenar e recuperar qualquer quantidade de dados e atender o trfego de solicitaes com facilidade e economia. uma tima opo para jogos, anncios e mobilidade em aplicaes. O Amazon DynamoDB usa mtodos de criptografia comprovados para autenticar usurios com segurana e evitar o acesso no autorizado aos dados. Possu as seguintes caratersticas: escalvel. Armazenamento e taxa de transferncia contnua. Administrao fcil. Flexvel. Desempenho rpido e previsvel. Tolerncia a falhas integrada. Econmico e seguro. Monitoramento integrado. Elastic Map Reduce permite anlise complexa de dados. Distribuio de dados entre seus ns de forma transparente para o usurio. Os usurios podem definir quantas rplicas so necessrias, e o Cassandra cuida da criao e gerenciamento de rplicas de forma transparente. Consistncia ajustvel: ao armazenar e ler dados Fornece gravaes muito rpidas Redes P2P: (Peer 2 Peer): Arquitetura de redes de computadores onde cada um dos pontos ou ns da rede funciona tanto como cliente quanto como servidor. Compartilhamento de dados sem a necessidade de um servidor central. Gossip Scutlebutt: Protocolo Fofoca utilizado para deteco de falhas, monitoramento e mensagens. Assim cada n transmite alguns dados para um conjunto de outros ns como se fosse uma conversa realmente. Os dados so propagados pelos ns construindo um mapa global de interaes. Tabela Hash Distribuda: Utiliza chave para identificao do n e cada linha possu uma chave garantindo consistncia. Cassandra usa um algoritmo hash para calcular o hash de chaves de cada item de dados armazenado nele (por exemplo, nome de coluna, ID de linha). O intervalo de hash, ou todos os valores de hash possveis (tambm chamado de keyspace), dividido entre os ns no cluster do Cassandra.
GOSSIP PROTOCOL Baseado em "reconciliao eficiente e controle de fluxo de protocolos anti-entropia" baseado em Merkle Trees. Esse nome recebido por utilizar o protocolo de fofocas para reparao de dados no lidos. A fofoca um protocolo P2P de comunicao em que os ns trocam informaes de estado entre si e outros ns. Assim os ns aprendem sobre os outros ns do cluster. Durante a troca de informaes fofoca, as informaes mais antigas so substitudas pelas atuais. Cassandra tem vrias estratgias diferentes para escrever dados entre os ns de forma personalizada. Com gossip-style pode-se determinar se um n pertence a um cluster. O protocolo Gossip possu diferentes tipos e caractersticas: Protocolos de disseminao. Usam a fofoca para espalhar a informao; Trabalham basicamente por agentes inundando a rede. Protocolo de anti-entropia: Utilizados para reparao de dados replicados comparando diferentes rplicas e reconciliao. Protocolo que computa agregados: Pode ser calculado um agregado em toda a rede, por amostragem. Caractersticas: Cada n conhece ao menos outro n. Propagao epidmica. Remove a necessidade de outro registro centralizado de ns. Menor uso de recursos (Scuttlebutt). Accrual Failure Detector (Detector de falhas de competncia). A configurao do cluster consiste em: cluster _name, seeds, listen_address e rpc_address. Para monitorar um cluster e a rotina do banco de dados. Cassandra possu um utilitrio nodetool que uma interface que o usurio pode administrar atravs de linha de comando.
DETECO DE FALHAS As falhas de ns podem acontecer devido ao hardware ou rede, onde ocorrem as interrupes de forma transitria ou por longos perodos. Quando o n no removido permanente do anel em um cluster, ou num caso de queda de energia, os ns podem perder alguns dados criando-se uma rplica para ser acessados novamente. O detector de falhas marca esse n que fica guardado por um tempo, para fazer a recuperao e reparos necessrios, podendo ser feitos atravs do utilitrio nodetool. Tratando essas falhas o n precisa re- estabelecer contato com outros ns. O administrador do Cassandra deve utilizar o reparo sempre que necessrio para ter os dados consistentes. Usando o algoritmo Phi Accrual possvel detectar a falha de um n. Se houver falha de um n em um cluster do Cassandra, o cluster continua funcionando quando h rplicas. A recuperao completa, consiste em redistribuir dados e compensar com rplicas perdidas, isso torna uma operao manual atravs da ferramenta de linha de comandos chamada ferramenta node. Cassandra no suporta operaes atmicas. Porm suporta operaes idempotentes. As operaes idempotentes deixam o sistema no mesmo estado, independentemente de quantas vezes so realizadas as operaes. Se uma operao falhar, possvel tentar novamente sem problemas. Isso um mecanismo para recuperao de falhas temporrias, tambm suporta operaes em lote, mas no tem garantia de atomicidade. Como as operaes so idempotentes, o cliente pode continuar tentando at que todas as operaes do lote tenham xito. CONCLUSO
Devido ao grande nmero de pessoas utilizando as redes sociais, ou aplicaes de compra pela Internet, muitas empresas tem adotado a tecnologia NoSQL, como Google, Facebook e Amazon por permitir compartilhamento dados em tempo real. Outra caracterstica importante est no armazenamento e gerenciamento de dados. Utilizando Cassandra com o banco de dados NoSql, permite que as aplicaes da Web 2.0 possam gerenciar dados de forma mais eficiente, tendo como vantagens: consistncia, alta disponibilidade, escalabilidade, esquema fexvel, alta performance e tolerncia a falhas.
REFERNCIAS
Primeiros passos com Cassandra. Disponvel em: http://pt.slideshare.net/mariomarroquim/distribuio-de-dados-em-escala-global- com-cassandra Acesso em 22/08/2014. Bem Vindo ao Apache Cassandra. Disponvel em: http://aws.amazon.com/pt/dynamodb/ Acesso em 23/08/2014. Usando Fofoca Protocolos Para Deteco De Falha, Monitoramento, Mensagens E Outras Coisas Boas. Disponvel em: http://highscalability.com/blog/2011/11/14/using-gossip-protocols-for-failure- detection-monitoring-mess.html Acesso em 23/08/2014. Apache Cassandra 0.8 Documentao. Disponvel em: http://www.datastax.com/docs/0.8/cluster_architecture/gossip Acesso em 23/08/2014. Banco de dados NoSQL Cassandra, Part 3 Cluster. Disponvel em: http://msdn.microsoft.com/pt-br/magazine/jj721601.aspx Acesso em 23/08/2014. Consideraes sobre o Banco de Dados Apache Cassandra. Disponvel em: http://www.ibm.com/developerworks/br/library/os-apache-cassandra/ Acesso em 25/08/2014.