SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso PráticoEiti Kimura
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de DadosEiti Kimura
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandraRichiely Paiva
 
Apresentacao Cassandra
Apresentacao CassandraApresentacao Cassandra
Apresentacao CassandraPeslPinguim
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Introdução ao AWS Database Migration Service
Introdução ao AWS Database Migration ServiceIntrodução ao AWS Database Migration Service
Introdução ao AWS Database Migration ServiceAmazon Web Services LATAM
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra Otávio Santana
 
Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?Amazon Web Services LATAM
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
Aula 8 - Comunicação entre Componentes com SQS e SNS
Aula 8 - Comunicação entre Componentes com SQS e SNSAula 8 - Comunicação entre Componentes com SQS e SNS
Aula 8 - Comunicação entre Componentes com SQS e SNSEduardo de Lucena Falcão
 
Utilizando NoSQL para Big Data com DynamoDB
Utilizando NoSQL para Big Data com DynamoDB Utilizando NoSQL para Big Data com DynamoDB
Utilizando NoSQL para Big Data com DynamoDB Amazon Web Services LATAM
 

Mais procurados (20)

NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Bancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWSBancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWS
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
 
Cassandra - O básico
Cassandra - O básicoCassandra - O básico
Cassandra - O básico
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandra
 
Apresentacao Cassandra
Apresentacao CassandraApresentacao Cassandra
Apresentacao Cassandra
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Introdução ao AWS Database Migration Service
Introdução ao AWS Database Migration ServiceIntrodução ao AWS Database Migration Service
Introdução ao AWS Database Migration Service
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 
Deep dive com Amazon Aurora
Deep dive com Amazon AuroraDeep dive com Amazon Aurora
Deep dive com Amazon Aurora
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra
 
Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Construindo um Data Lake na AWS
Construindo um Data Lake na AWSConstruindo um Data Lake na AWS
Construindo um Data Lake na AWS
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
Aula 8 - Comunicação entre Componentes com SQS e SNS
Aula 8 - Comunicação entre Componentes com SQS e SNSAula 8 - Comunicação entre Componentes com SQS e SNS
Aula 8 - Comunicação entre Componentes com SQS e SNS
 
Utilizando NoSQL para Big Data com DynamoDB
Utilizando NoSQL para Big Data com DynamoDB Utilizando NoSQL para Big Data com DynamoDB
Utilizando NoSQL para Big Data com DynamoDB
 
Aula 4 - Introdução a aws
Aula 4 - Introdução a awsAula 4 - Introdução a aws
Aula 4 - Introdução a aws
 

Semelhante a Cassandra para Aplicações Móveis

Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linuxaviram
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Primeiros passos em computação em nuvem
Primeiros passos em computação em nuvemPrimeiros passos em computação em nuvem
Primeiros passos em computação em nuvemFilipe Barretto
 
Apresentando o Windows Server 2008 R2
Apresentando o Windows Server 2008 R2Apresentando o Windows Server 2008 R2
Apresentando o Windows Server 2008 R2Rodrigo Immaginario
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...Amazon Web Services
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosAmazon Web Services LATAM
 
Desenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na NuvemDesenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na NuvemJose Papo, MSc
 
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovarLiberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovarAmazon Web Services LATAM
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralFabio Hara
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summitinfolive
 
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...Andrea Rigoni
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAmazon Web Services LATAM
 
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesDetonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesJose Papo, MSc
 

Semelhante a Cassandra para Aplicações Móveis (20)

Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Padrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWSPadrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWS
 
Computacao em nuvem
Computacao em nuvemComputacao em nuvem
Computacao em nuvem
 
Primeiros passos em computação em nuvem
Primeiros passos em computação em nuvemPrimeiros passos em computação em nuvem
Primeiros passos em computação em nuvem
 
Apresentando o Windows Server 2008 R2
Apresentando o Windows Server 2008 R2Apresentando o Windows Server 2008 R2
Apresentando o Windows Server 2008 R2
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuários
 
Desenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na NuvemDesenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na Nuvem
 
Arquiteturas de Software para o Século XXI
Arquiteturas de Software para o Século XXIArquiteturas de Software para o Século XXI
Arquiteturas de Software para o Século XXI
 
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovarLiberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Rodando SAP na AWS
Rodando SAP na AWSRodando SAP na AWS
Rodando SAP na AWS
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summit
 
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...
Palestra Andrea Rigoni CONACLOUD 2014 - Os desafios no uso de sistemas crític...
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
 
VMware Portfolio 2015
VMware Portfolio 2015VMware Portfolio 2015
VMware Portfolio 2015
 
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesDetonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
 

Mais de Eiti Kimura

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...Eiti Kimura
 
[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of Redis[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of RedisEiti Kimura
 
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark Casos de Uso e EscalabilidadeEiti Kimura
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto DesempenhoEiti Kimura
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsEiti Kimura
 

Mais de Eiti Kimura (6)

[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
 
[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of Redis[Redis conf18] The Versatility of Redis
[Redis conf18] The Versatility of Redis
 
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade[DEVFEST] Apache Spark  Casos de Uso e Escalabilidade
[DEVFEST] Apache Spark Casos de Uso e Escalabilidade
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of Seasons
 

Cassandra para Aplicações Móveis

  • 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”
  • 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)
  • 17. Volume de Dados ~ Assinaturas: 56,4 milhões ~ Assinantes: 37,1 milhões ~ 11K leituras/segundo ~ 4,2 escritas/segundo
  • 18.
  • 19. 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
  • 21. ● 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?
  • 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 ao longo do dia reads per minute writes per minute
  • 24. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013
  • 25. Benchmark Benchmarking Top NoSQL Databases, White Paper , DATASTAX CORPORATION, FEBRUARY 2013