Conhecendo
Apache Cassandra
@Movile
São Paulo Big Data Meetup 25.11.15 Eiti Kimura
Eiti Kimura
Coordenador de TI na Movile
- Apache Cassandra MVP 2015
- Apache Cassandra MVP 2014
- Contribuidor Apache Cassandra
- Certificação Apache Cassandra Desenvolvedor 1.1
Palestrante no Cassandra Summit 2015 (Santa Clara - CA)
http://www.slideshare.net/eitikimura/cassandra-summit-2015-a-change-of-seasons
Palestrante no Cassandra Summit 2014 (San Francisco - CA)
https://www.youtube.com/watch?v=igmLnluGcDM
O que é?
Simples assim...
“Banco de Dados Não Relacional,
distribuído de código aberto...”
C*
Características Distribuído
e
Descentral
izado
Escalabilida
de Elástica
Alta disp.
Tolerante a
Falhas
Consist.
"Tunável"
Orientado a
Colunas
Alto
Desempenho
Escalabilidade Linear
http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html
Como funciona?
Distribuição de dados
Cassandra atribui um valor hash para cada chave de partição
1. A operação pode ocorrer em
qualquer nó
2. O coordenador executa a
operação em diferentes nós e
zonas
3. Coordenador retorna o ACK
para o cliente
4. Cliente pode escolher o nível
de consistência da operação
RF = 3
Fluxo básico de escrita de informação no Apache Cassandra
Fluxo básico de leitura de informação no Apache Cassandra
Tolerância a Falhas
http://www.datastax.com/dev/blog/how-cassandra-deals-with-replica-failure
Como pode ser usado?
Casos de Uso Típicos
Playlists e Coleções de dados Spotify
Sistema de Recomendação e Personalização
Mensageria
Detecção de Fraude
Catálogos Multi-idiomas
Processamento de Dados de sensores
Um pouco sobre como usamos na Movile
- Controle de assinaturas de usuários
- Controle de regras de tarifação
- Registro de eventos de usuários em apps
- Sistema de Matcher de mensagens
- E mais...
Arquitetura Inicial da Plataforma
API
DB
API
DB
API
API
API
API
API
Nova arquitetura
API
API
API
API
API
API
API
API
API
API
Other
Vantagens da Nova Solução
- problemas de desempenho: resolvido
- problemas de disponibilidade: resolvido
- aumento significante da capacidade de
leitura e escrita
Lições Aprendidas: O que deu errado
- Converter diretamente o modelo de dados relacional
- Usar ferramenta como Cache
- Executar junção do lado do cliente (anti-pattern: client-
side join)
- Recriar uma tabela com o mesmo nome (Column
Family Reincarnation)
- Adicionar vários nós paralelamente usando vnodes
Lições Aprendidas: Boas práticas
- Conheça os recursos de modelagem e remodele
- Evite o uso de Coleções (evitar tombstones)
- Faça prova de conceito com o modelo de dados
- Faça testes de carga sobre o modelo e número de nós
- Execute as rotinas de manuteção corretamente (repair)
- Monitore o desempenho do cluster regularmente (JMX)
- Use os drivers oficiais da Datastax
Onde aprender mais?
http://www.planetcassandra.org/try-cassandra/
http://academy.datastax.com/
Grátis, totalmente prático, siga no seu ritmo
Links de Referência
https://issues.apache.org/jira/browse/cassandra
http://cassandra.apache.org/
http://www.planetcassandra.org/apache-cassandra-mailing-lists/
User/Developer List
Jira Issues
Download
Cassandra 3.0 is out!
http://www.slideshare.net/JonHaddad/cassandra-30-awesomeness
talentos@movile.com
eitikimura
eitikimura
eiti.kimura@movile.com

SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Notas do Editor

  • #17  ----- Meeting Notes (25/11/15 11:48) ----- comentar sobre a apple, sony, activision
  • #19 link: What were the disadvantages of this solutions?
  • #21 Link: we still have a weak link
  • #22 Link: we still have a weak link
  • #23 Link: we still have a weak link