SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
PoC Cassandra
Desenvolvimento de Sistemas Distribuídos sobre
NoSQL Apache Cassandra
AGENDA!
OBJETIVOS
PROJETO
RESULTADOS
LIÇÕES APRENDIDAS
PoC
Cassandra
PROBLEMAS
APRESENTAÇÃO
• A everis, uma empresa do grupo NTT DATA
• Atualmente tem 13.000 profissionais em 14 países
Linhas de Negócios:
• Consultoria de negócios
• Serviços de tecnologia da informação
• Outsourcing
• Business Process Outsourcing (BPO)
• Soluções SAP
• Iniciativas & Inovação
O que é a everis?
O que é o Laboratório de Inovação Digital?
• Laboratório de Transformação Digital
• Centro de Criação de Ativos em Tecnologia Digital
• Iniciativas:
• Big Data
• IoT
• Realidade Aumentada
• Realidade Virtual
• Text Mining
• Assistente Virtual
Quem sou eu?
• Formado em Processamento de Dados pela
FATEC Sorocaba
• MBA em BI pela FIAP
• Mestrando pela EACH - USP
• Trabalho com Big Data a mais de 2 anos
• Especialista em Sistemas – Big Data na everis
• Certificado Apache Cassandra Developer
OBJETIVO – Principal
A PoC Cassandra visava estressar de modo continuo o
banco de dados não relacional (NoSQL) Apache
Cassandra. Para este objetivo foi desenvolvido um caso
de uso baseado no mercado financeiro, simulando uma
casa de compra e venda de títulos disponíveis na bolsa
de valores eletrônica NASDAQ
OBJETIVOS - Secundários
• Teste de stress
• Conhecer o ciclo de vida de
desenvolvimento de projetos com
Cassandra
• Conhecer os problemas
• Conhecer as dificuldades no
desenvolvimento
• Construir ferramentas de controle
• Observação de desempenho
OBJETIVO - Real
Mainframe Killer
OBJETIVOS – Motivação
Implementou todo o sistema de risco, monitoramento de transações e
fornecimento de dados regulatórios sobre Cassandra, distribuído em dois data
centers
Utiliza 3 clusters de Cassandra espalhados em 3 cidades diferentes da Holanda
para substituir diversos serviços críticos que anteriormente eram processados
em dois mainframes do banco. Todos os serviços on-line e de processamento
em tempo real foram migrados dos mainframes para os clusters Cassandra
Criou o serviço UBSNeo, um broker para investimento e análise de séries
temporais de negócios sobre o Apache Cassandra, distribuído em diversos data
centers pelo mundo
EMPRESAS DO RAMO FINANCEIRO QUE UTILIZAM CASSANDRA
• Allied Payment – Provedora americana de serviços de pagamento
• ABC Arbitrage - Empresa financeira especializada no comércio automatizado
• Barracuda Networks – Empresa de serviços de segurança digital e detecção de fraude
• Clear Capital – Provedor de dados e de avaliação de ativos e riscos
• CardSpring - Provedora de APIs de serivços de pagamento de cartão de crédito
• First American Financial - Provedora de serviços financeiro diversos
• F-Secure – Empresa de serviços de segurança e detecção de fraudes
• iDeal – Empresa do grupo ING de provisão de serviços de pagamentos
• Macquarie - Banco de investimento australiano
• PayPal – Provedora de Serviços de Pagamento
• Simililty – Empresa de serviços de segurança e detecção de fraudes
• Venmo – Fincth provedora de serviços de pagamento e carteira digital
• XOOM – Empresa de serviços transferência de fundos financeiros
• Capital One Financial Corporation – Banco Americano
PROJETO
PROJETO – Caso de Uso
PROJETO
PROJETO
PROJETO – Modelo Lógico – Notação Chen
PROJETO – Modelo Físcio
PROBLEMAS – Desenvolvimento do Projeto
• Instalação do Cassandra Driver no Windows
• Apenas 50 Índices por requisição no Google Finance
• Listagem de Clientes muito maior que a capacidade das máquinas
• 1.3milhões de clientes
• Necessários pelo menos 200 agentes para processamento
(Problema performance no Python)
• Servidor da Digital Ocean inferia que os testes eram ataques
massivos e desligava os servidores
PROBLEMAS – Utilização do Cassandra
• Desenhos das tabelas não atendia todas as querys
• Uso de trace nas consultas deixou o sistema extremamente lento
• Necessidade de join do lado do cliente gerava muitas consultas
• Uso de tabelas como fila (anti-pattern)
• Driver Casssandra só retorna um result da operação se usado Lightweight
Transactions (if exists) e para usar LT necessário deletar registro pela Partition Key
• Se usado trace, necessário remodelar a tabela para excluir com dados da chave.
• Python para processar quantidade de transações e sobrecarregar o Cassandra não foi
suficiente. Foi necessário criar um host a mais de agentes para sobrecarregar de
transações o cluster Cassandra.
• Ao adicionar um novo nó do Cassandra, foi necessário alterar o objeto de conexão
adicionando o IP
• (procurar uma forma melhor para fazer isso)
• Tratamento de exceções de erro
• Tratamento das exceções tem de ser específicos
• Métricas do Cassandra precisam ser muito bem estudadas, pois são muitas e um pouco
confusas
RESULTADO – Modelo Físico Realizado
RESULTADO – ARQUITETURA TECNICA REALIZADA
RESULTADOS
RESULTADOS
LIÇÕES APRENDIDAS
• Não usar Cassandra como fila
• Usar aplicações apropriadas para este fim (KAFKA, MQs, Filas, etc)
• Desenvolver as tabelas de acordo com as consultas
• Para projetos de grande performance usar linguagens com tipo de dados leves e
que trabalham naturalmente com threads e assíncronos (GO, Java, Scala)
• Uso de Lightweight Transactions apenas com as chaves primarias completas
• Ordenação da Cluster Key é importante para consultas
• Usar Cassandra-Metrics para monitorar o cluster (Necessário de instalação de
JAR do Grafite) ou configuração do JMS
LIÇÕES APRENDIDAS
• Pensar bem no Consistence Level da aplicação :
• Nível alto de consistência apenas para transações
que necessariamente de alto grau de integridade
• Não usar execute_assync com consistência alta
• Se a execução não alcançar o Consistente Level,
retorna uma exceção
• O tratamento da exceção tem de ser específico, para
gerenciar outros erros como de conexão, queda de
clusters, timeout, etc.
• Uso de execute_assync na aplicação pode trazer
velocidade na aplicação, mas não trás certeza de
conclusão da operação
• Usar notação Chebotko ao pé da letra a definir a
modelagem de dados do Cassandra
• KDM – Serviço Online Gratuito para modelar Chebotko
LIÇÕES APRENDIDAS
• Aplicação do Repair constante (1 vez por semana pelo menos)
• Diminui a quantidade de disco utilizada pela SSTables
• Pode aumentar a latência de algumas transações durante a
aplicação
• Adicionar nós um de cada vez, esperando alguns minutos para adicionar o
próximo nó
• Usar collections com moderação (List, Set, Maps)
• Quase tudo que é possível fazer com Collections, você consegue
fazer com colunas
• Usar tuplas com moderação
• Nunca usar collections em registros que fazem muitos updates
• Problemas registrados de tombstones nesse caso
LIÇÕES APRENDIDAS
• Aninhar os dados sempre que possível
• Timeuuid necessitam diversas funções auxiliares para geração (Python)
• Timestamps são interessantes para pesquisa de dados – mas é preciso
ordenar de forma correta
• Verificar o custo (trade-off) entre duplicação de dados e joins dentro de
clientes (Volume x Latência). Para sistemas de baixa latência melhor duplicar
os dados nas tabelas
• Projetos precisam de muitos testes para o desenvolvimento
Thanks, we are
delighted to have the
opportunity to
transform with you

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

O que uma enterprise deveria fazer nos primeiros 90 dias
O que uma enterprise deveria fazer nos primeiros 90 diasO que uma enterprise deveria fazer nos primeiros 90 dias
O que uma enterprise deveria fazer nos primeiros 90 dias
 
Dev vs. Ops
Dev vs. OpsDev vs. Ops
Dev vs. Ops
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
SQL over SMB3
SQL over SMB3SQL over SMB3
SQL over SMB3
 
Arquiteturas escaláveis e tolerantes a falhas
Arquiteturas escaláveis e tolerantes a falhasArquiteturas escaláveis e tolerantes a falhas
Arquiteturas escaláveis e tolerantes a falhas
 
Auto scaling
Auto scalingAuto scaling
Auto scaling
 
Tirando leite de pedra
Tirando leite de pedraTirando leite de pedra
Tirando leite de pedra
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Um framework para a Transformaçao da TI e do Negócio
Um framework para a Transformaçao da TI e do Negócio Um framework para a Transformaçao da TI e do Negócio
Um framework para a Transformaçao da TI e do Negócio
 
Conteineres no Microsoft Azure
Conteineres no Microsoft AzureConteineres no Microsoft Azure
Conteineres no Microsoft Azure
 
Inter Dev Ops Conf 2016 - IaaS behind the scenes
Inter Dev Ops Conf 2016 - IaaS behind the scenesInter Dev Ops Conf 2016 - IaaS behind the scenes
Inter Dev Ops Conf 2016 - IaaS behind the scenes
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 
Começando com computação em nuvem em 2022
Começando com computação em nuvem em 2022Começando com computação em nuvem em 2022
Começando com computação em nuvem em 2022
 

Similar a Meetup Everis Cassandra

Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
iMasters
 

Similar a Meetup Everis Cassandra (20)

Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWS
 
Como funciona a Internet
Como funciona a InternetComo funciona a Internet
Como funciona a Internet
 
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
 
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 - ...
 
Visão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloudVisão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloud
 
Mudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dadosMudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dados
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...
 
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo SummitDo monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
 
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
Otimizacao de custo summit 2015
Otimizacao de custo summit 2015Otimizacao de custo summit 2015
Otimizacao de custo summit 2015
 
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
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
 
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 

Último

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Meetup Everis Cassandra

  • 1. PoC Cassandra Desenvolvimento de Sistemas Distribuídos sobre NoSQL Apache Cassandra
  • 3. • A everis, uma empresa do grupo NTT DATA • Atualmente tem 13.000 profissionais em 14 países Linhas de Negócios: • Consultoria de negócios • Serviços de tecnologia da informação • Outsourcing • Business Process Outsourcing (BPO) • Soluções SAP • Iniciativas & Inovação O que é a everis?
  • 4. O que é o Laboratório de Inovação Digital? • Laboratório de Transformação Digital • Centro de Criação de Ativos em Tecnologia Digital • Iniciativas: • Big Data • IoT • Realidade Aumentada • Realidade Virtual • Text Mining • Assistente Virtual
  • 5. Quem sou eu? • Formado em Processamento de Dados pela FATEC Sorocaba • MBA em BI pela FIAP • Mestrando pela EACH - USP • Trabalho com Big Data a mais de 2 anos • Especialista em Sistemas – Big Data na everis • Certificado Apache Cassandra Developer
  • 6. OBJETIVO – Principal A PoC Cassandra visava estressar de modo continuo o banco de dados não relacional (NoSQL) Apache Cassandra. Para este objetivo foi desenvolvido um caso de uso baseado no mercado financeiro, simulando uma casa de compra e venda de títulos disponíveis na bolsa de valores eletrônica NASDAQ
  • 7. OBJETIVOS - Secundários • Teste de stress • Conhecer o ciclo de vida de desenvolvimento de projetos com Cassandra • Conhecer os problemas • Conhecer as dificuldades no desenvolvimento • Construir ferramentas de controle • Observação de desempenho
  • 9. OBJETIVOS – Motivação Implementou todo o sistema de risco, monitoramento de transações e fornecimento de dados regulatórios sobre Cassandra, distribuído em dois data centers Utiliza 3 clusters de Cassandra espalhados em 3 cidades diferentes da Holanda para substituir diversos serviços críticos que anteriormente eram processados em dois mainframes do banco. Todos os serviços on-line e de processamento em tempo real foram migrados dos mainframes para os clusters Cassandra Criou o serviço UBSNeo, um broker para investimento e análise de séries temporais de negócios sobre o Apache Cassandra, distribuído em diversos data centers pelo mundo
  • 10. EMPRESAS DO RAMO FINANCEIRO QUE UTILIZAM CASSANDRA • Allied Payment – Provedora americana de serviços de pagamento • ABC Arbitrage - Empresa financeira especializada no comércio automatizado • Barracuda Networks – Empresa de serviços de segurança digital e detecção de fraude • Clear Capital – Provedor de dados e de avaliação de ativos e riscos • CardSpring - Provedora de APIs de serivços de pagamento de cartão de crédito • First American Financial - Provedora de serviços financeiro diversos • F-Secure – Empresa de serviços de segurança e detecção de fraudes • iDeal – Empresa do grupo ING de provisão de serviços de pagamentos • Macquarie - Banco de investimento australiano • PayPal – Provedora de Serviços de Pagamento • Simililty – Empresa de serviços de segurança e detecção de fraudes • Venmo – Fincth provedora de serviços de pagamento e carteira digital • XOOM – Empresa de serviços transferência de fundos financeiros • Capital One Financial Corporation – Banco Americano
  • 15. PROJETO – Modelo Lógico – Notação Chen
  • 17. PROBLEMAS – Desenvolvimento do Projeto • Instalação do Cassandra Driver no Windows • Apenas 50 Índices por requisição no Google Finance • Listagem de Clientes muito maior que a capacidade das máquinas • 1.3milhões de clientes • Necessários pelo menos 200 agentes para processamento (Problema performance no Python) • Servidor da Digital Ocean inferia que os testes eram ataques massivos e desligava os servidores
  • 18. PROBLEMAS – Utilização do Cassandra • Desenhos das tabelas não atendia todas as querys • Uso de trace nas consultas deixou o sistema extremamente lento • Necessidade de join do lado do cliente gerava muitas consultas • Uso de tabelas como fila (anti-pattern) • Driver Casssandra só retorna um result da operação se usado Lightweight Transactions (if exists) e para usar LT necessário deletar registro pela Partition Key • Se usado trace, necessário remodelar a tabela para excluir com dados da chave. • Python para processar quantidade de transações e sobrecarregar o Cassandra não foi suficiente. Foi necessário criar um host a mais de agentes para sobrecarregar de transações o cluster Cassandra. • Ao adicionar um novo nó do Cassandra, foi necessário alterar o objeto de conexão adicionando o IP • (procurar uma forma melhor para fazer isso) • Tratamento de exceções de erro • Tratamento das exceções tem de ser específicos • Métricas do Cassandra precisam ser muito bem estudadas, pois são muitas e um pouco confusas
  • 19. RESULTADO – Modelo Físico Realizado
  • 20. RESULTADO – ARQUITETURA TECNICA REALIZADA
  • 23. LIÇÕES APRENDIDAS • Não usar Cassandra como fila • Usar aplicações apropriadas para este fim (KAFKA, MQs, Filas, etc) • Desenvolver as tabelas de acordo com as consultas • Para projetos de grande performance usar linguagens com tipo de dados leves e que trabalham naturalmente com threads e assíncronos (GO, Java, Scala) • Uso de Lightweight Transactions apenas com as chaves primarias completas • Ordenação da Cluster Key é importante para consultas • Usar Cassandra-Metrics para monitorar o cluster (Necessário de instalação de JAR do Grafite) ou configuração do JMS
  • 24. LIÇÕES APRENDIDAS • Pensar bem no Consistence Level da aplicação : • Nível alto de consistência apenas para transações que necessariamente de alto grau de integridade • Não usar execute_assync com consistência alta • Se a execução não alcançar o Consistente Level, retorna uma exceção • O tratamento da exceção tem de ser específico, para gerenciar outros erros como de conexão, queda de clusters, timeout, etc. • Uso de execute_assync na aplicação pode trazer velocidade na aplicação, mas não trás certeza de conclusão da operação • Usar notação Chebotko ao pé da letra a definir a modelagem de dados do Cassandra • KDM – Serviço Online Gratuito para modelar Chebotko
  • 25. LIÇÕES APRENDIDAS • Aplicação do Repair constante (1 vez por semana pelo menos) • Diminui a quantidade de disco utilizada pela SSTables • Pode aumentar a latência de algumas transações durante a aplicação • Adicionar nós um de cada vez, esperando alguns minutos para adicionar o próximo nó • Usar collections com moderação (List, Set, Maps) • Quase tudo que é possível fazer com Collections, você consegue fazer com colunas • Usar tuplas com moderação • Nunca usar collections em registros que fazem muitos updates • Problemas registrados de tombstones nesse caso
  • 26. LIÇÕES APRENDIDAS • Aninhar os dados sempre que possível • Timeuuid necessitam diversas funções auxiliares para geração (Python) • Timestamps são interessantes para pesquisa de dados – mas é preciso ordenar de forma correta • Verificar o custo (trade-off) entre duplicação de dados e joins dentro de clientes (Volume x Latência). Para sistemas de baixa latência melhor duplicar os dados nas tabelas • Projetos precisam de muitos testes para o desenvolvimento
  • 27. Thanks, we are delighted to have the opportunity to transform with you