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 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
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)
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
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
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.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
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

  • 1.
    Cassandra no Desenvolvimento deAplicaçõ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 é? Umadefiniçã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.
  • 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ênciaEventual: 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.
  • 9.
    Modelo de dados ColumnFamily (CF) Super Column Family (SCF)
  • 10.
    Modelo de dados CompositeColumns CREATE TABLE timeline ( user_id varchar, tweet_id uuid, author varchar, body varchar, PRIMARY KEY (user_id, tweet_id) );
  • 11.
    Mais de 20milhõ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 deusuários nas operadoras ● controle de assinaturas de produtos ● base de broadcast de mensagens
  • 14.
    Escalar Verticalmente ● sobrecargana API de serviço ● Investimento em hardware mais robusto
  • 15.
    Alta Utilização ● Sobrecargano banco de dados relacional ● Sobrecarga nas API’s de serviço (efeito cascata)
  • 16.
  • 17.
    Volume de Dados ~Assinaturas: 56,4 milhões ~ Assinantes: 37,1 milhões ~ 11K leituras/segundo ~ 4,2 escritas/segundo
  • 19.
    SUBSCRIPTION -> ColumnFamily 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
  • 20.
  • 21.
    ● Bom desempenhode 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?
  • 22.
    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
  • 23.
    Resultados: operações aolongo do dia reads per minute writes per minute
  • 24.
    Benchmark Benchmarking Top NoSQLDatabases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  • 25.
    Benchmark Benchmarking Top NoSQLDatabases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  • 26.