qconsp 2014 - cassandra no desenvolvimento de aplicações para serviços móveis
Post on 14-Jan-2015
1.580 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
Apache CassandraO que é? Princípio de FuncionamentoModelo de dados
Aplicação do CassandraRequisitos do serviçoArquitetura da PlataformaCluster de Cassandra
Resultados
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”
Arquitetura e Funcionamento
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
Arquitetura e Funcionamento - Teorema CAP
Cassandra tem maior foco em disponibilidade e particionamento.
O teorema indica que é possível obter somente duas dessas propriedades
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
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,
PRIMARY KEY (user_id, tweet_id)
);
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
● 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
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)
Ass
inat
uras
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
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
Nova arquitetura
● 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?
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
Resultados: operações ao longo do dia
reads per minutewrites 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
top related