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

  • 1,558 views
Uploaded on

Material apresentado no QConSP 2014. …

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.

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,558
On Slideshare
0
From Embeds
0
Number of Embeds
9

Actions

Shares
Downloads
9
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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”
  • 4. Arquitetura e Funcionamento
  • 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
  • 8. Modelo de dados Algumas Equivalências
  • 9. Modelo de dados Column Family (CF) Super Column Family (SCF)
  • 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
  • 14. Escalar Verticalmente ● sobrecarga na API de serviço ● Investimento em hardware mais robusto
  • 15. Alta Utilização ● Sobrecarga no banco de dados relacional ● Sobrecarga nas API’s de serviço (efeito cascata)
  • 16. Assinaturas Tempo 2006 2014 Aumento de volume ao longo do tempo
  • 17. Volume de Dados ~ Assinaturas: 56,4 milhões ~ Assinantes: 37,1 milhões ~ 11K leituras/segundo ~ 4,2 escritas/segundo
  • 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. Nova arquitetura
  • 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. 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. Resultados: operações ao longo do dia reads per minute writes per minute
  • 23. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  • 24. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  • 25. eiti.kimura@movile.com @eitikimura facebook.com/eiti.kimura flickr.com/eitikimura Perguntas