qconsp 2014 - cassandra no desenvolvimento de aplicações para serviços móveis
DESCRIPTION
Material apresentado no QConSP 2014. Overview sobre o NoSQL Cassandra e como aplicá-lo no desenvolvimento de serviços críticos de alto desempenho para aplicações móveis.TRANSCRIPT
![Page 1: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/1.jpg)
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
![Page 2: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/2.jpg)
Apache CassandraO que é? Princípio de FuncionamentoModelo de dados
Aplicação do CassandraRequisitos do serviçoArquitetura da PlataformaCluster de Cassandra
Resultados
![Page 3: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/3.jpg)
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”
![Page 4: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/4.jpg)
Arquitetura e Funcionamento
![Page 5: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/5.jpg)
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
![Page 6: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/6.jpg)
Arquitetura e Funcionamento - Teorema CAP
Cassandra tem maior foco em disponibilidade e particionamento.
O teorema indica que é possível obter somente duas dessas propriedades
![Page 7: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/7.jpg)
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
![Page 8: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/8.jpg)
Modelo de dados
Algumas Equivalências
![Page 9: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/9.jpg)
Modelo de dados
Column Family (CF)
Super Column Family (SCF)
![Page 10: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/10.jpg)
Modelo de dados
Composite Columns
CREATE TABLE timeline (
user_id varchar,
tweet_id uuid,
author varchar,
body varchar,
PRIMARY KEY (user_id, tweet_id)
);
![Page 11: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/11.jpg)
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
![Page 12: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/12.jpg)
● 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
![Page 13: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/13.jpg)
Legado...
● cobrança de usuários nas operadoras
● controle de assinaturas de produtos
● base de broadcast de mensagens
![Page 14: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/14.jpg)
Escalar Verticalmente
● sobrecarga na API de serviço
● Investimento em hardware mais robusto
![Page 15: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/15.jpg)
Alta Utilização
● Sobrecarga no banco de dados relacional
● Sobrecarga nas API’s de serviço (efeito cascata)
![Page 16: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/16.jpg)
Ass
inat
uras
Tempo
2006 2014
Aumento de volume ao longo do tempo
![Page 17: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/17.jpg)
Volume de Dados
~ Assinaturas: 56,4 milhões~ Assinantes: 37,1 milhões
~ 11K leituras/segundo~ 4,2 escritas/segundo
![Page 18: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/18.jpg)
![Page 19: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/19.jpg)
SUBSCRIPTION -> Column Family Name
‘USER_ID’ : string -> Row Key: value-type
carrier_id: int -> ColumnName: value-type
subs_id_1: byte[] -> Dynamic ColumnName: value-type
subs_id_2: byte[] -> Dynamic ColumnName: value-type
Cassandra Data Model
551900001111carrier_id SID-9217436 SID-8854522 SID-55214
5 [0110011001] [01100110] [01100110]
551900002222carrier_id SID-555111 SID-444222 SID-333666
1 [0110011001] [01100110] [01100110]
Estrutura da Informação
Exemplo de dados
![Page 20: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/20.jpg)
Nova arquitetura
![Page 21: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/21.jpg)
● 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?
![Page 22: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/22.jpg)
Node 1 :load_avg: 0.08write_latency(us): 1057.2read_latency(us): 1113.0
Node 2 :load_avg: 0.16write_latency(us): 1026.6read_latency(us): 1637.8
Node 3 :load_avg: 0.16write_latency(us): 855.5read_latency(us): 851.7
Node 4 :load_avg: 0.22write_latency(us): 1117.7read_latency(us): 871.5
Node 5 :load_avg: 1.6write_latency(us): 1278.1read_latency(us): 1252.5
Estatísticas de Desempenho
Read Latency AVG: ~ 1144 usWrite Latency AVG: ~ 1066 us
![Page 23: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/23.jpg)
Resultados: operações ao longo do dia
reads per minutewrites per minute
![Page 24: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/24.jpg)
Benchmark
Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
![Page 25: QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis](https://reader031.vdocuments.site/reader031/viewer/2022020207/54b550e34a795992298b4644/html5/thumbnails/25.jpg)
Benchmark
Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013