QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
1. Cassandra no Desenvolvimento
de Aplicações para
serviços Móveis
Cassandra no Desenvolvimento
de Aplicações para
serviços Móveis
por J.P. Eiti Kimura
2. Apache Cassandra
O que é?
Princípio de Funcionamento
Modelo de dados
Aplicação do Cassandra
Requisitos do serviço
Arquitetura da Plataforma
Cluster de Cassandra
Resultados
3. O que é?
Uma definição em 50 palavras ou menos
“Apache Cassandra é um banco de dados
não relacional orientado a colunas,
distribuído, descentralizado,
escalável, de alta disponibilidade,
tolerante a falhas, com design baseado
no Amazon's Dynamo e o modelo de dados
no BigTable do Google. Criado pelo
Facebook e hoje utilizado em grandes
empresas como Netflix, eBay, Instagram
e outras”
5. Arquitetura e Funcionamento
● Desenvolvido em Java: http://cassandra.
apache.org/
● Descentralizado (não há SPOF)
● Utiliza o Protocolo Peer-to-Peer (ao invés do
modelo master/slave)
● Escalabilidade Elástica
6. Arquitetura e Funcionamento - Teorema CAP
Cassandra tem
maior foco em
disponibilidade e
particionamento.
O teorema indica que é possível obter somente duas dessas propriedades
7. Eventually Consistency
● Consistência Eventual: a
consistência ocorrerá ao
longo do tempo, e
eventualmente todos os
clientes acessarão a
mesma informação em um
dado instante.
● Forma de consistência
propagada. Ex.: DNS
10. Modelo de dados
Composite Columns
CREATE TABLE timeline (
user_id varchar,
tweet_id uuid,
author varchar,
body varchar,
PRIMARY KEY (user_id, tweet_id)
);
11. Mais de 20 milhões de pessoas usando nossos
serviços todo mês.
A Movile é líder em desenvolvimento de
plataformas de comércio e conteúdo móvel na
América Latina. Com produtos para celulares,
smartphones e tablets, nosso trabalho deixa a
vida das pessoas melhor e mais divertida
Movile
12. ● Alta disponibilidade: o serviço nunca pode
parar
● Plataforma crítica
● Alto desempenho: deve responder em
alguns milissegundos
● Sistema Seguro e confiável
Requisitos da Plataforma
13. Legado...
● cobrança de usuários
nas operadoras
● controle de assinaturas
de produtos
● base de broadcast de
mensagens
21. ● Bom desempenho de leitura
● Excelente desempenho em escrita
● Throughput de leitura e escrita altamente escalável
● Suporta geo-distribuição de informação
● Tolerante a falhas
● Controle fino do nível de consistência por cliente
● Integridade de dados com checks e repairs
● Queremos: FOSS (Free and Open Source Software) +
Suporte
Porque Cassandra?