conhecendo apache cassandrafiles.meetup.com/17299362/spbigdata meetup...eiti kimura coordenador de...
TRANSCRIPT
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 Descentrali
zado
Escalabilidade 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 par4çã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
[email protected] eitikimura
eitikimura