● O documento discute a evolução de sistemas distribuídos na Movile ao longo de 6 anos, começando com o uso do Apache Cassandra para controlar assinaturas e tarifações e, posteriormente, armazenar dados de aplicativos e notificações push.
● Problemas como desempenho, disponibilidade e escalabilidade levaram a mudanças na arquitetura, como a migração de bancos de dados relacionais para o Cassandra.
● Lições aprendidas incluem evitar coleções do Cassandra, reparos ap
Material sobre Apache Cassandra, apresentado em forma de Webinar junto pessoal da Datastax.
Ilustra o funcionamento da ferramenta e mostra como a ferramenta foi aplicada para resolver problemas de disponibilidade e desempenho de aplicações distribuídas.
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
Apresentação sobre Apache Cassandra, arquitetura, fluxo de operações, cluster, ferramentas para desenvolvimento, overview sobre o CQL. Apresentação do caso de uso da Movile.
Promovido por: Movile, Datastax e Planet Cassandra.
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileEiti Kimura
Apresentação sobre Apache Cassandra na Movile no SP Big Data Meetup 2015. Conheça esse banco de dados distribuído e como vem sendo usando por grandes empresas.
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
Material apresentado no QConSP 2014.
Overview sobre o NoSQL Cassandra e como aplicá-lo no desenvolvimento de serviços críticos de alto desempenho para aplicações móveis.
Material sobre Apache Cassandra, apresentado em forma de Webinar junto pessoal da Datastax.
Ilustra o funcionamento da ferramenta e mostra como a ferramenta foi aplicada para resolver problemas de disponibilidade e desempenho de aplicações distribuídas.
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
Apresentação sobre Apache Cassandra, arquitetura, fluxo de operações, cluster, ferramentas para desenvolvimento, overview sobre o CQL. Apresentação do caso de uso da Movile.
Promovido por: Movile, Datastax e Planet Cassandra.
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileEiti Kimura
Apresentação sobre Apache Cassandra na Movile no SP Big Data Meetup 2015. Conheça esse banco de dados distribuído e como vem sendo usando por grandes empresas.
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
Material apresentado no QConSP 2014.
Overview sobre o NoSQL Cassandra e como aplicá-lo no desenvolvimento de serviços críticos de alto desempenho para aplicações móveis.
O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM, dentre muitas outras. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.
Assuntos abordados
- Conceito Data Science
- Conceito BigData
- NOSQL
- Histórico
- Tipos de Bancos
- Comparação com o Modelo relacional
- Cassandra
- Arquitetura Cassandra
- Configurações Básica do Cassandra
- Configuração de multi-nodes no Cassandra
- Conhecendo o DevOpsCenter
- Instalando os Agentes
[DataFest-2017] Apache Cassandra Para Sistemas de Alto DesempenhoEiti Kimura
Quando seus negócios crescem, seus sistemas chave não suportam mais o volume de informação inserido, não respondem mais requisições dos seus clientes, a quem chamar? Como resolver? Conheça o Apache Cassandra e como foi fundamental para evoluir nossos sistemas e alavancar o crescimento dos nossos negócios, aplicado no desenvolvimento de sistemas distribuídos de alto desempenho para aplicativos móveis
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Uma analise teórica e pratica sobre as diferenças entre bancos de dados Relacionais, NoSQL e NewSQL desenvolvida como TCC para o curso de Ciências da Computação da UNESC
Os bancos de dados não relacionais (NoSql) a cada dia tem se tornado mais real no cotidiano dos desenvolvedores web, o crescente numero de projetos que adotaram essa tecnologia não nos deixa fugir da realidade que se você ainda não usuou, provavelmente em um futuro bem próxima mas bem próximo mesmo vai usar. Os diferentes tipos de nosql (Orientado a documentos, Chave Valor, Orientado a Colunas) torna indispensável o conhecimento dos tipos e suas principais vantagens, para que se possa escolher de forma correta a tecnogolia NoSql que mais se adapta ao seu projeto. O brasil tem se mostrado bastante interessado nos bancos de dados não relacionais, mais uma pesquisa minha mesmo, própria e que não tem dados específicos, mas vamos chutar ai ! que a grande maioria se fala bastante de nosql?s orientados colunas tipo mongo couch, e uma pequena porcentagem de chave valor, outra quase nula de ?orientados a coluna?, porrisso pra tentar mostrar que os bancos orientados a colunas também funcionam,a palestra propoem conhecer e entender os bancos de dados orientados a colunas, e se estudando um dos mais conhecidos da rede o famoso Cassandra, banco de dados conhecido por ser utilizado pelos maiores aplicativos web desta geração (Twitter, Faceboock). Aprincipal idéia é tentar mostrar como os bancos orientados a colunas trabalham como eles organizam os dados, dentro do cassandra mostrar as ferramentas que pode ser utilizada para gerenciar um grande volume de dados, (clusters, replication). tentando mostrar também de como o cassandra trabalha.
Veja além de primeira página: Aprenda a otimizar e utilizar as melhores práticas do Amazon Redshift, banco de dados colunar e de processamento paralelo massivo, para aumentar a capacidade de entregar performance em queries com alto volume de dados em segundos ou milisegundos. Esta sessão explica como migrar ambientes de Data Warehouses existentes, criar schemas otimizados, fazer carga de maneira eficiente, utilizar o workload management, e otimizar suas queries, utilizando o Amazon Redshift com features avançadas.
https://aws.amazon.com/pt/redshift/
The aim of the lecture is the demonstration of the new Low Level Discovery Resources that emerged in Zabbix 3.0, as well as presentation, operation and demonstration LLD settings of Windows and ODBC Services.
Apresentação com abordagem sobre NoSQL apresentada para avaliação da matéria de Banco de Dados II da Universidade de Vila Velha.
Material: https://www.slideshare.net/lorran33/material-seminrio-nosql/
Alunos: Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta
Universidade de VIia Velha.
"O Amazon DynamoDB é um serviço de banco de dados NoSQL, totalmente gerenciado, para aplicativos que precisam de latência consistente de um dígito de milissegundos em qualquer escala. Nesta sessão iremos explorar as capacidades e benefícios do DynamoDB em detalhes e iremos discutir como obter o máximo do seu banco de dados DynamoDB. Examinaremos as melhores práticas de design de schema com o DynamoDB em vários casos de uso, incluindo jogos, AdTech, IoT e outros.
Também exploraremos o design de índices eficientes, scanning e queries, e detalharemos as funcionalidades lançadas recentemente, incluindo o suporte a documentos JSON, Streams, Time-to-Live (TTL) e muito mais."
https://aws.amazon.com/pt/dynamodb/
7Masters jQuery - Acessibilidade com jQuery Validate, com Deivid MarquesiMasters
Deivid Marques falou sobre como deixar formulários acessíveis com o jQuery Validate. Ele é Desenvolvedor front-end na Locaweb; organizador da Conferência CSS Brasil e do Front In Sampa.
7Masters jQuery - jQuery além do código, com Leon KulikowskiiMasters
Leon Kulikowski é desenvolvedor mobile, front-end e Solutions Consultant da Adobe. Nesta edição do 7Masters ele levou o jQuqery para além do código e falou sobre inovação, replicação de conhecimento e zona de conforto.
O Cassandra é um banco de dados NOSQL orientado à família de coluna que nasceu para resolver problemas com aplicações que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Ele nasceu no facebook e hoje vem sendo usado intensamente por empresas dos mais variados portes, tais como Netflix, Twitter, Instagram, HP, IBM, dentre muitas outras. Um fator importante que vale ser citado é a sua adoção crescente inclusive em mercados mais conversadores tais como, instituições financeiras e agências governamentais como a NASA.
Assuntos abordados
- Conceito Data Science
- Conceito BigData
- NOSQL
- Histórico
- Tipos de Bancos
- Comparação com o Modelo relacional
- Cassandra
- Arquitetura Cassandra
- Configurações Básica do Cassandra
- Configuração de multi-nodes no Cassandra
- Conhecendo o DevOpsCenter
- Instalando os Agentes
[DataFest-2017] Apache Cassandra Para Sistemas de Alto DesempenhoEiti Kimura
Quando seus negócios crescem, seus sistemas chave não suportam mais o volume de informação inserido, não respondem mais requisições dos seus clientes, a quem chamar? Como resolver? Conheça o Apache Cassandra e como foi fundamental para evoluir nossos sistemas e alavancar o crescimento dos nossos negócios, aplicado no desenvolvimento de sistemas distribuídos de alto desempenho para aplicativos móveis
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Uma analise teórica e pratica sobre as diferenças entre bancos de dados Relacionais, NoSQL e NewSQL desenvolvida como TCC para o curso de Ciências da Computação da UNESC
Os bancos de dados não relacionais (NoSql) a cada dia tem se tornado mais real no cotidiano dos desenvolvedores web, o crescente numero de projetos que adotaram essa tecnologia não nos deixa fugir da realidade que se você ainda não usuou, provavelmente em um futuro bem próxima mas bem próximo mesmo vai usar. Os diferentes tipos de nosql (Orientado a documentos, Chave Valor, Orientado a Colunas) torna indispensável o conhecimento dos tipos e suas principais vantagens, para que se possa escolher de forma correta a tecnogolia NoSql que mais se adapta ao seu projeto. O brasil tem se mostrado bastante interessado nos bancos de dados não relacionais, mais uma pesquisa minha mesmo, própria e que não tem dados específicos, mas vamos chutar ai ! que a grande maioria se fala bastante de nosql?s orientados colunas tipo mongo couch, e uma pequena porcentagem de chave valor, outra quase nula de ?orientados a coluna?, porrisso pra tentar mostrar que os bancos orientados a colunas também funcionam,a palestra propoem conhecer e entender os bancos de dados orientados a colunas, e se estudando um dos mais conhecidos da rede o famoso Cassandra, banco de dados conhecido por ser utilizado pelos maiores aplicativos web desta geração (Twitter, Faceboock). Aprincipal idéia é tentar mostrar como os bancos orientados a colunas trabalham como eles organizam os dados, dentro do cassandra mostrar as ferramentas que pode ser utilizada para gerenciar um grande volume de dados, (clusters, replication). tentando mostrar também de como o cassandra trabalha.
Veja além de primeira página: Aprenda a otimizar e utilizar as melhores práticas do Amazon Redshift, banco de dados colunar e de processamento paralelo massivo, para aumentar a capacidade de entregar performance em queries com alto volume de dados em segundos ou milisegundos. Esta sessão explica como migrar ambientes de Data Warehouses existentes, criar schemas otimizados, fazer carga de maneira eficiente, utilizar o workload management, e otimizar suas queries, utilizando o Amazon Redshift com features avançadas.
https://aws.amazon.com/pt/redshift/
The aim of the lecture is the demonstration of the new Low Level Discovery Resources that emerged in Zabbix 3.0, as well as presentation, operation and demonstration LLD settings of Windows and ODBC Services.
Apresentação com abordagem sobre NoSQL apresentada para avaliação da matéria de Banco de Dados II da Universidade de Vila Velha.
Material: https://www.slideshare.net/lorran33/material-seminrio-nosql/
Alunos: Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta
Universidade de VIia Velha.
"O Amazon DynamoDB é um serviço de banco de dados NoSQL, totalmente gerenciado, para aplicativos que precisam de latência consistente de um dígito de milissegundos em qualquer escala. Nesta sessão iremos explorar as capacidades e benefícios do DynamoDB em detalhes e iremos discutir como obter o máximo do seu banco de dados DynamoDB. Examinaremos as melhores práticas de design de schema com o DynamoDB em vários casos de uso, incluindo jogos, AdTech, IoT e outros.
Também exploraremos o design de índices eficientes, scanning e queries, e detalharemos as funcionalidades lançadas recentemente, incluindo o suporte a documentos JSON, Streams, Time-to-Live (TTL) e muito mais."
https://aws.amazon.com/pt/dynamodb/
7Masters jQuery - Acessibilidade com jQuery Validate, com Deivid MarquesiMasters
Deivid Marques falou sobre como deixar formulários acessíveis com o jQuery Validate. Ele é Desenvolvedor front-end na Locaweb; organizador da Conferência CSS Brasil e do Front In Sampa.
7Masters jQuery - jQuery além do código, com Leon KulikowskiiMasters
Leon Kulikowski é desenvolvedor mobile, front-end e Solutions Consultant da Adobe. Nesta edição do 7Masters ele levou o jQuqery para além do código e falou sobre inovação, replicação de conhecimento e zona de conforto.
Quantas vezes você já teve que priorizar itens no backlog sem saber direito quanto de valor agregaria para o produto? O objetivo desta palestra é prover ferramentas para que você consiga transformar a percepção de importância dos seus stakeholders (aqueles que querem aquela feature "para ontem") em algo mensurável e fácil de priorizar frente aos demais itens do backlog. As técnicas mostradas nesta palestra vêm se provando um diferencial para ajudar POs e stakeholders a colocar as prioridades em perspectiva, e reduzir o atrito no processo de refinamento e priorização dos itens de backlog.
#NoEndState : Plataformas, Produtores e Interfaces no Product tank meetupPedro Donati
Há uma nova economia de mercado. Você será Plataforma, Produtor ou Interface ?
Porque as empresas são como são e como abordar #NoEndState (não existe mais end-state, vivemos em constante transition state)
Pense produtos pelo propósito e não pelo produto. O que importa não é o que você criou mas o que ele mudou no mercado.
Palestra apresentada por mim, Felipe Ribeiro, na PHP Conference Brasil 2009 mostrando os novos recursos do PHP 5.3 no que diz respeito a estruturas de dados
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
A manipulação de dados por meio de intervalos de datas é uma das poucas tarefas na qual a linguagem SQL não é muito útil. O motivo é operações como intersecção , precedência, combinação e operações relacionadas a intervalos de datas requerem a construções de instruções SQL muito complexas e com pouca manutenabilidade. Esta palestra vai apresentar os principais problemas relacionados à pesquisas por intervalos de data e explicar porquê a linguagem SQL não é adequada para lidar com eles. Em seguida a palestra vai se conentrar nas soluções existentes, incluindo as extensões da linguagem SQL para manipulação de data, interfaces para ferramentas OLAP e ferramentas específicas para pesquisas por intervalo.
Micro serviços, containers, filas, frontend, mobile... Nossos projetos estão cada vez mais complexos e nossos logs precisam acompanhar essa evolução. Nessa palestra vamos ver como usar o Monolog e outras ferramentas para facilitar a gestão dos logs em projetos modernos.
Como o ViajaNet aumentou suas vendas com SEOConversion
Como o ViajaNet aumentou suas vendas com SEO - Rafael Medeiros é Chief Performance Officer (CPO) da Conversion, graduou-se pela Universidade de São Paulo (USP) e é certificado PMP/PMI; Gustavo Mariotto, gerente de marketing, participou da fundação do site de venda de passagens aéreas ViajaNet. Especialista em Marketing Digital, possui vasta experiência em SEO, SEM, CRM e programa de afiliados.
Gustavo Mariotto e Rafael Medeiros irão apresentar o case de sucesso da ViajaNet, que por meio do SEO conseguiu se estabelecer e aumentar suas vendas em um dos mercados mais concorridos do e-commerce, o de venda de passagens aéreas.
Não basta acrescentar media-queries em seu projeto web para torná-lo responsivo. Neste painel o campuseiro poderá repensar o Design, tendo como foco a interação do usuário em diferentes cenários e devices, além do impacto no Front-end dessas adaptações.
O Twitter completou 10 anos de existência no dia 21 de março de 2016. Nesta apresentação, pinçamos elementos e curiosidades dessa história e os dividimos em 20 textos de 140 caracteres (para manter a tradição). Divirta-se!
Autoria: Tracto
Presentation from DFWSEM #StateOfSearch on November 18, 2013.
Presentation Description: "Data visualization makes incredible content, but by the time you add up the cost of data analysis, graphic design, programmers, and all of the other skills needed to put together big content projects, clients and stakeholders see high costs and often aren't sold on the likelihood of success. Kane will show how you can produce data-based content initiatives that are both successful and cost-effective, paving the way for larger campaigns."
An advanced forms presentation given with Miguel Araujo (marajop) at DjangoCon 2011. The transcript and slides is aimed at getting into Django Core, and Jacob Kaplan-Moss has stated this is his plan.
Palestra ministrada no dia 26/08/2015 no 7Masters Design Responsivo (setemasters.imasters.com.br/edicoes/design-responsivo/), falando sobre Responsive Design Workflow.
Mobile First (ou boas razões para investir em Mobile)Edu Agni
Palestra sobre Mobile First apresentada por Edu Agni para os funcionários do Banco do Brasil, no dia 30 de julho de 2015 em Brasília. O conteúdo da palestra foi dividido em duas partes: a primeira fazendo uma contextualização sobre o universo mobile, e a segunda parte tratando mais especificamente de design e Mobile First.
Assista ao vídeo em https://www.youtube.com/watch?v=XGV55AHTDa4
At Instagram, our mission is to capture and share the world's moments. Our app is used by over 400M people monthly; this creates a lot of challenging data needs. We use Cassandra heavily, as a general key-value storage. In this presentation, I will talk about how we use Cassandra to serve our critical use cases; the improvements/patches we made to make sure Cassandra can meet our low latency, high scalability requirements; and some pain points we have.
About the Speaker
Dikang Gu Software Engineer, Facebook
I'm a software engineer at Instagram core infra team, working on scaling Instagram infrastructure, especially on building a generic key-value store based on Cassandra. Prior to this, I worked on the development of HDFS in Facebook. I got the master degree of Computer Science in Shanghai Jiao Tong university in China.
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerAndré Rocha
Apresentração para o Meetup Docker SP (19/10/17) falando um pouco da jornada da Konker implantando um cluster mesos e orquestrando docker via Marathon sem fazer uso da distribuição DC/OS.
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
O appliance IBM Netezza consiste em uma plataforma de banco de dados otimizado e integrado a um hardware de alta performance. Uma nova forma de análise em grandes volumes de dados é fator chave de competitividade para as empresas.
As soluções tradicionais de datawarehouse são rígidas, complexas, lentas e caras, inibindo a agilidade na tomada de decisões. O IBM Netezza é uma plataforma que foi desenvolvida para endereçar exatamente este problema: uma solução de performance desruptiva, administração muito simples e custo reduzido, utilizado para datawarehouses de grande volume e complexidade.
Ele integra banco de dados, servidor, e discos de armazenamento em um único rack. Sua arquitetura de processamento massivo paralelo combina blades de processamento, discos e um processo de filtragem de dados através de software armazenado diretamente em chips (FPGAs: field-programmable gate arrays). Este é o diferencial de performance do IBM Netezza quando comparado aos concorrentes: sua arquitetura é única e inteligente, devido ao uso de FPGAs com software gravado diretamente em silício, lê menos dados e também move menos dados entre os componentes internos, eliminando desperdícios e gargalos de processamento. Esta arquitetura dispensa tuning, índices, particionamento, etc. tornando a administração simples, permitindo que a equipe técnica tenha mais tempo para trabalhar em projetos de negócio ao invés de gastar tempo em atividades técnicas/administrativas que não geram valor agregado.
Veja o webcast no link http://www.videolog.tv/devworksbr/videos/716598
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaDextra Sistemas / Etec Itu
Dicas práticas de abordagem adotada em case de migração de legado e como melhorar aplicações legadas deixando sistemas mais estáveis para suportar o tempo de desenvolvimento de novas aplicações
ou como um Data Warehouse pode complementar sua estratégia de dados e trazer impacto no seu negócio através de analytics (sem te levar à falência)
apresentada no CloudUp - Porto Alegre em Março de 2019
gravação ao final dos slides ou https://youtu.be/XqkfAwDorrk
Wagner Bianchi é Senior Principal Consulting com atuação direta em
trabalhos de consultoria e projetos em MySQL principalmente em
clientes da América Latina. Com 8 anos de experiência em servidores de
bancos de dados MySQL e ambientes Open Source, possui as
certificações CMA, CMDEV, CMDBA e CMCDBA.
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
como um Data Warehouse pode complementar sua estratégia de dados e trazer impacto no seu negócio através de analytics (sem te levar à falência)
atualizada em 11/2018 com alguns dos últimos anúncios pre-re:Invent.
apresentada no 10º AWS Porto Alegre MeetUp: https://www.meetup.com/AWS-Porto-Alegre/events/256404950/
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovarAmazon Web Services LATAM
Frustradas com o alto custo, baixa escalabilidade e outros problemas de desempenho, as empresas estão buscando migrar para bancos de dados em nuvem totalmente gerenciados ou se libertar da natureza restritiva dos bancos de dados legados para economizar, crescer e inovar.
Apresentação do Meetup São Paulo Cassandra Users, sobre PoC desenvolvia na Everis sobre Desenvolvimento de Sistemas Distribuídos sobre NoSQL Apache Cassandra.
Palestra apresentada no QConSP 2015.
Nessa palestra vamos abordar técnicas de design evolutivo para bancos de dados relacionais usando práticas de "Database Refactoring", parte fundamental do desenvolvimento ágil. Com exemplos que encontramos no dia-a-dia, iremos explorar técnicas e estratégias a serem usadas durante o desenvolvimento e também para o deploy em produção.
Seguimos com uma abordagem realista de como migrar versões em produção sem downtime. Veremos, por exemplo, como realizar migrações de versões de uma aplicação de forma que seja possível a utilização de duas versões em paralelo – permitindo migração parcial dos usuários ou a volta à versão antiga em caso de problemas (plano B).
Esta será uma palestra prática, usaremos o PostgreSQL como gerenciador de bancos de dados para demonstração das técnicas abordadas. Por fim, serão apresentados algumas dicas e truques do PostgreSQL e de outros SGDBs que ajudam na hora do deploy.
3. • Arquiteto de software e Coordenador de TI na Movile
• Apache Cassandra Developer 1.1 Certified (2013)
• Apache Cassandra MVP (2014 e 2015)
• Apache Cassandra Contributor (2015)
• Cassandra Summit Speaker (2014 e 2015)
Eiti Kimura
eitikimura
4. • Desenvolvedor na Movile
• Estudante de Ciência da Computação na Unicamp
Fernando Gonçalves
fhsgoncalves
5. Sumário
● INTRODUÇÃO
● CASOS DE USO
○ Plataforma de Tarifação e controle de assinaturas
○ Registro de dados de apps e envio de notificações push
● CONCLUSÃO
○ Problemas encontrados, lições aprendidas.
13. Apache Cassandra é um banco de dados
não relacional (NoSQL) orientado a colunas, distribuído,
escalável, de alta disponibilidade, tolerante a falhas.
[The Definitive Guide, Eben Hewitt, 2010]
14.
15.
16.
17. Controle de Assinaturas e Tarifações
• Composto de uma API de serviço;
• Responsável pelo gerenciamento de assinaturas de usuários;
• Cobrança dos usuários nas operadoras;
O serviço não pode parar de forma alguma
e deve ser muito rápido.
18. A plataforma em números
105M de assinaturas
76,3M de usuários únicos
145M de transações ao dia
19. Linha e evolutiva da Plataforma (SBS)
2008
Banco relacional puro
2009
Apache Cassandra
(v0.5)
2011
Remodelagem de
dados com
4 nós no cluster
Cluster da versão 1.0
para 1.2
2013
Cluster upgrade
da versão
0.7 para 1.0
Expansão de 4
para 6 nós
2014
Novo indice de
dados para
assinaturas
2015
Expansão do cluster
para 10 nós
21. Desvantagens da Arquitetura
• Ponto único de falha
• Tempos de resposta lentos
• Downtimes frequentes
• Caro e difícil para escalar
Escalar uma plataforma sem escalar
as dependências externas resulta em falha.
23. Benefícios da nova solução
❏ Problemas de desempenho: OK;
❏ Problemas de disponibilidade: OK;
❏ Ponto único de falha: Parcialmente Resolvido;
❏ Aumento significante no throughput de leitura e escrita;
26. Problemas na Arquitetura
Com o aumento da concorrência ocorre degradação de
desempenho nas operações com o banco de dados relacional.
Consultas ao banco relacional podem consumir tempo
Continua com impacto na escalabilidade
27. Proposta de Evolução
➔ Extrair dados do Apache Cassandra ao invés do banco relacional;
➔ Sem ponto único de falha;
➔ Melhoria de desempenho, porém mais trabalho filtrando a informação;
30. KIWI - BACKEND SERVICE
Foco em smartphones
Alta performance Alta disponibilidade
Analytics
Engajamento de usuário
Notificações por Push
31. 40M
Total de instalações de apps
450M
Total de notificações push enviadas
Análise de dados
Alguns dados do Kiwi em 2015
20M
Total de configurações de usuários
51. Sobre adição de nós (Cassandra v2.1)
PARA NÃO PERDER DADOS:
1. Não adicionar em paralelo (ESPERAR BALANCEAR)
2. Rodar repair a cada adição
3. Consulte o procedimento no manual.
56. Hinted Handoff
ERROR [HintedHandoff:1] 2015-08-31 18:31:55,600 CassandraDaemon.java:182 - Exception in thread Thread
[HintedHandoff:1,1,main]
java.lang.IndexOutOfBoundsException: null
at java.nio.Buffer.checkIndex(Buffer.java:538) ~[na:1.7.0_79]
at java.nio.HeapByteBuffer.getLong(HeapByteBuffer.java:410) ~[na:1.7.0_79]
at org.apache.cassandra.utils.UUIDGen.getUUID(UUIDGen.java:106) ~[apache-cassandra-2.2.0.jar:2.2.0]
at org.apache.cassandra.db.HintedHandOffManager.scheduleAllDeliveries(HintedHandOffManager.java:515)
~[apache-cassandra-2.2.0.jar:2.2.0]
at org.apache.cassandra.db.HintedHandOffManager.access$000(HintedHandOffManager.java:88) ~[apache-
cassandra-2.2.0.jar:2.2.0]
at org.apache.cassandra.db.HintedHandOffManager$1.run(HintedHandOffManager.java:168) ~[apache-
cassandra-2.2.0.jar:2.2.0]
at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run
(DebuggableScheduledThreadPoolExecutor.java:118) ~[apache-cassandra-2.2.0.jar:2.2.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_79]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_79]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThread)
CASSANDRA-10233 - IndexOutOfBoundsException in HintedHandOffManager
CASSANDRA-10485 - Missing host ID on hinted handoff write
58. Hinted Handoff
- POSSÍVEIS CAUSAS -
# enable assertions. disabling this in production will
give a modest performance benefit (around 5%).
JVM_OPTS="$JVM_OPTS -ea"
Problemas de bootstrap na adição de novos nós ao cluster
59. Hinted Handoff
Correção de Emergência
Executar operação de 'truncate' na tabela de hints
Atualizar para versão >= 2.1.11
A versão 3.x não foi afetada pelo problema, pois a nova StorageEngine
armazena os hints em arquivos e não mais na estrutura de
uma tabela do Cassandra.
63. Cassandra 1.2
ERROR [CompactionExecutor:6523] 2015-10-09 12:33:23,551
CassandraDaemon.java (line 191) Exception in thread
Thread[CompactionExecutor:6523,1,main]
java.lang.AssertionError: incorrect row data size3758096384 written to
/movile/cassandra-data/SBSPlatform/idx_config/SBSPlatform-idx_config-tmp-ic-715-Data.
db;
at org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:162)
at org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:
162)
at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.
java:48)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
+3GB em 1 linha
64. Limites Físicos de Partição
Cassandra 2.0 ou Anterior
● ~ 100MB ou menos / partição;
● ~ 100k valores (colunas na linha).
Cassandra 2.1+
● Algumas centenas de MB por partição;
● Milhões de valores (colunas por partição).
72. ❏ Evitar Collections do Cassandra;
❏ Adição de nós em paralelo;
❏ Problemas no HintedHandOff;
❏ Client Side Joins (anti-pattern) - Copiar banco relacional;
❏ Ultra wide row (anti-pattern);
❏ Não verificar limites da ferramenta (lógicos e físicos).
O que não fazer
75. Links de Referência:
Al Tobey Cassandra 2.1 Tuning Guide
https://tobert.github.io/pages/als-cassandra-21-tuning-guide.html
Academia Datastax: Modelagem de dados
https://academy.datastax.com/courses/ds220-data-modeling
Cassandra, lists, and tombstones
http://bit.ly/1MwGuGT
How to drop and recreate a table in Cassandra versions older than 2.1
http://bit.ly/1R481LO