Cassandra no Desenvolvimento
de Aplicações para
serviços Móveis
Cassandra no Desenvolvimento
de Aplicações para
serviços M...
Apache Cassandra
O que é?
Princípio de Funcionamento
Modelo de dados
Aplicação do Cassandra
Requisitos do serviço
Arquitet...
O que é?
Uma definição em 50 palavras ou menos
“Apache Cassandra é um banco de dados
não relacional orientado a colunas,
d...
Arquitetura e Funcionamento
Arquitetura e Funcionamento
● Desenvolvido em Java: http://cassandra.
apache.org/
● Descentralizado (não há SPOF)
● Utiliz...
Arquitetura e Funcionamento - Teorema CAP
Cassandra tem
maior foco em
disponibilidade e
particionamento.
O teorema indica ...
Eventually Consistency
● Consistência Eventual: a
consistência ocorrerá ao
longo do tempo, e
eventualmente todos os
client...
Modelo de dados
Algumas Equivalências
Modelo de dados
Column Family (CF)
Super Column Family (SCF)
Modelo de dados
Composite Columns
CREATE TABLE timeline (
user_id varchar,
tweet_id uuid,
author varchar,
body varchar,
PR...
Mais de 20 milhões de pessoas usando nossos
serviços todo mês.
A Movile é líder em desenvolvimento de
plataformas de comér...
● Alta disponibilidade: o serviço nunca pode
parar
● Plataforma crítica
● Alto desempenho: deve responder em
alguns miliss...
Legado...
● cobrança de usuários
nas operadoras
● controle de assinaturas
de produtos
● base de broadcast de
mensagens
Escalar Verticalmente
● sobrecarga na API de
serviço
● Investimento em
hardware mais robusto
Alta Utilização
● Sobrecarga no banco de
dados relacional
● Sobrecarga nas API’s de
serviço (efeito cascata)
Assinaturas
Tempo
2006
2014
Aumento de volume ao longo do tempo
Volume de Dados
~ Assinaturas: 56,4 milhões
~ Assinantes: 37,1 milhões
~ 11K leituras/segundo
~ 4,2 escritas/segundo
SUBSCRIPTION -> Column Family Name
‘USER_ID’ : string -> Row Key: value-type
carrier_id: int -> ColumnName: value-type
sub...
Nova
arquitetura
● Bom desempenho de leitura
● Excelente desempenho em escrita
● Throughput de leitura e escrita altamente escalável
● Supo...
Node 1 :
load_avg: 0.08
write_latency(us): 1057.2
read_latency(us): 1113.0
Node 2 :
load_avg: 0.16
write_latency(us): 1026...
Resultados: operações ao longo do dia
reads per minute
writes per minute
Benchmark
Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
Benchmark
Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
eiti.kimura@movile.com
@eitikimura
facebook.com/eiti.kimura
flickr.com/eitikimura
Perguntas
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
Upcoming SlideShare
Loading in …5
×

QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis

694 views

Published on

Material apresentado no QConSP 2014.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
694
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis

  1. 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. 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. 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”
  4. 4. Arquitetura e Funcionamento
  5. 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. 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. 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
  8. 8. Modelo de dados Algumas Equivalências
  9. 9. Modelo de dados Column Family (CF) Super Column Family (SCF)
  10. 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. 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. 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. 13. Legado... ● cobrança de usuários nas operadoras ● controle de assinaturas de produtos ● base de broadcast de mensagens
  14. 14. Escalar Verticalmente ● sobrecarga na API de serviço ● Investimento em hardware mais robusto
  15. 15. Alta Utilização ● Sobrecarga no banco de dados relacional ● Sobrecarga nas API’s de serviço (efeito cascata)
  16. 16. Assinaturas Tempo 2006 2014 Aumento de volume ao longo do tempo
  17. 17. Volume de Dados ~ Assinaturas: 56,4 milhões ~ Assinantes: 37,1 milhões ~ 11K leituras/segundo ~ 4,2 escritas/segundo
  18. 18. 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 551900001111 carrier_id SID-9217436 SID-8854522 SID-55214 5 [0110011001] [01100110] [01100110] 551900002222 carrier_id SID-555111 SID-444222 SID-333666 1 [0110011001] [01100110] [01100110] Estrutura da Informação Exemplo de dados
  19. 19. Nova arquitetura
  20. 20. ● 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?
  21. 21. Node 1 : load_avg: 0.08 write_latency(us): 1057.2 read_latency(us): 1113.0 Node 2 : load_avg: 0.16 write_latency(us): 1026.6 read_latency(us): 1637.8 Node 3 : load_avg: 0.16 write_latency(us): 855.5 read_latency(us): 851.7 Node 4 : load_avg: 0.22 write_latency(us): 1117.7 read_latency(us): 871.5 Node 5 : load_avg: 1.6 write_latency(us): 1278.1 read_latency(us): 1252.5 Estatísticas de Desempenho Read Latency AVG: ~ 1144 us Write Latency AVG: ~ 1066 us
  22. 22. Resultados: operações ao longo do dia reads per minute writes per minute
  23. 23. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  24. 24. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  25. 25. eiti.kimura@movile.com @eitikimura facebook.com/eiti.kimura flickr.com/eitikimura Perguntas

×