SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
Distribuição de dados em
    escala global com
         Cassandra
  Mário Sérgio Coelho Marroquim
             mariomarroquim@gmail.com
     http://blogdomariomarroquim.wordpress.com
Sumário
●   A Web 2.0, o Big Data e as bases relacionais
●   O Casssandra
●   Modelo de dados, BigTable
●   Arquitetura distribuída, Dynamo
    -   Redes P2P, Gossip / Scuttlebut
    -   Distributed Hash Tables, hash consistente
    -   Distribuição, escrita, leitura e deleção de dados
    -   Detecção e correção de conflitos / falhas
● Estudo de caso
● Conclusões
Web 2.0 :)
Big Data
Facebook:   845 mi de usuários
                    
Twitter:   140   mi de tweets por dia

                              LE MA
                        PR OB
Múltiplos
servidores!



                  UÇÃO
              SOL
Múltiplos
data centers!



                  UÇÃO
              SOL
Dist. de dados em escala global!
● Baixa latência da rede
● Melhor balanceamento de carga
● Alta disponibilidade do serviço
● Maior performance geral
● (...)
A rede VAI falhar
Os nós VÃO falhar
Escalabilidade
Disponibilidade
 Consistência
 Performance
Bases de dados relacionais
● Propriedades ACID
  -   Atomicidade
  -   Consistência
  -   Isolamento
  -   Durabilidade
● Normalizações
● 2-phase commit / 2-phase locking
  - Baixa performance
  - Deadlocks                        LE MA
                           PR OB
2-phase commit



                 COORDENADOR



   SERVIDORES
Banco NoSQL
 Feito em Java
Criado em 2008
ACID
        LE MA
   PR OB
CAP
Consistência | Disponibilidade | Tolerância


                                  UÇÃO
                            SO  L
Cassandra
● Permite configuração do balanço entre
  -   Escalabilidade
  -   Disponibilidade
  -   Consistência / Durabilidade
  -   Performance
  - Tolerância a falhas na rede
● Sem nó coordenador
  - Sem SPOF: Single Point Of Failure
● Baixo custo, servidores convencionais
Modelo de dados
BigTable
● Criado pelo Google em 2004
● Sem tabelas ou relacionamentos
● É fácil de particionar e replicar
● Altamente escalável
● Baseado em colunas
Coluna
Super Coluna
Família de Colunas
Família de Super Colunas
Família de Super Colunas




                           keyspace
Arquitetura Distribuída
Baseada no
   Dynamo
 * Amazon *
Redes P2P
Redes P2P




                         ZA DO
                   TR ALI
             ES CEN
            D
Gossip / Scuttlebutt
Gossip / Scuttlebutt
● Cada nó conheçe ao menos outro nó
● Propagação epidêmica
● Remove a necessidade de um registro
  centralizado de nós
● Scuttlebutt, menor uso de recursos
  - Accrural Failure Detector
Gossip / Scuttlebutt




                               EN TE
                          TELIG
                       IN
Distributed Hash Tables
Distributed Hash Table
● Consistent Hashing
  - Cada nó é identificado por uma chave
  - Estrutura circular de nós
  - Cada linha possui uma chave
  - Cada linha é alocada no próximo nó com
  chave maior que a sua
Consistent Hashing
Consistent Hashing
Consistent Hashing
● Provoca o particionamento das linhas
● Permite prever em qual nó está uma linha
● A remoção ou inclusão de nós afeta apenas
  os seus nós vizinhos
Particionamento
Particionamento




                          AB E!
                        ÁS
                      ÊJ
                  V OC
Replicação
Replicação
● Evita um ponto único de falha
● Dados são replicados em  N - 1 nós
  - N = fator de replicação
● Estratégias específicas para
  - Apenas um hack
  - Todo um data center
  - Todo o cluster
● Assíncrona
Replicação
Simple Strategy
Desconsidera hacks e datacenters




               Considera apenas a
               distribuição circular dos nós
               no data center!
Old Network Topology Strategy
Considera os hacks em um mesmo data center




               Uma das réplicas é enviada
               para outro data center!
Network Topology Strategy
Considera os hacks em todos os data center




               Permite parametrização de
               detalhes para otimização da rep.
Replicação
● Nenhum nó será responsável por mais
  de N - 1 nós (Zookeeper)
● Aumenta a disponibilidade dos dados
● Aumenta a tolerância contra falhas
● Não prejudica a performance geral
Escrita e Leitura
Escrita e Leitura
● A partir de qualquer nó: descentralização
● Redirecionamento para o nó coordenador
  - Protocolo Gossip, Consistent Hashing
● Balanço entre consistência e performance
  - Configurável
  - Consistência eventual
Escrita e Leitura




                    R
 Número mínimo de nós que devem responder
de forma síncrona à uma operação de LEITURA
Escrita e Leitura




                  W
Número mínimo de nós que devem responder de
 forma síncrona à uma operação de ESCRITA
Escrita e Leitura




      R+W>N
           Maior consistência
Escrita e Leitura




           W=1
        Escritas nunca irão falhar
Escrita e Leitura




    R e W altos
   Maior consistência, menor performance
Escrita e Leitura




            N alto
    Maior durabilidade, boa performance
Quorum, Local Quorum, Each Quorum

● Configuração por operação (leit. e escrita)

● Ao menos   N / 2 + 1 réplicas síncronas
● Consideram hacks no mesmo data center e
  em outros data centers!
Deleção distribuída
Deleção distribuída
● Impossibilidade de propagar deleções
● Adição (e propagação) de uma coluna
  chamada tombstone
● Limpeza local em cada nó com o comando
  nodetool repair
Detecção e correção de
   conflitos / falhas
Hinted Handoff
● Um nó substitui outro nó indisponível
● Temporário, sincronização posterior
● Baseado no protocolo Gossip
● Rápido, assíncrono
Read Repair
● Sincronização de dados sob demanda
● Uso do campo timestamp
● Rápido, assíncrono
Protocolo anti-entropia
● Baseado em Merkle Trees
● MD5 para cada chave, coluna e família
● Sincronização baseada em timestamp
● Lento, muito uso de CPU e disco
● Uso do comando nodetool repair
● Corrige o que o Read Repair não corrigiu!
Protocolo anti-entropia

    Nó #1, Chave 13       Nó #2, Chave 13
Estudo de caso
Projeto Cassandra Hits
● Cluster simples, 2 servidores
● Centenas de escritas e leituras
● Escalabilidade x Performance




       https://github.com/mariomarroquim/cassandra-hits
Ambiente de teste
● Processadores Intel Xeon 2Ghz, quadcore
● 2Gb de RAM em um servidor e 512Mb de
  RAM no outro
● Ubuntu Server 10.04 e 10.10 instalados em
  cada servidor, respectivamente
● Java 1.6.31 instalado em ambos
Configuração do cluster
Configuração do cluster
Configuração do cluster
Configuração do cluster
Configuração do cluster
Resultados obtidos




      Os 2 nós respondem normalmente às
                  requisições
Resultados obtidos




        Após a queda do segundo nó, a
              velocidade diminui
Resultados obtidos




        Após a volta do segundo nó, a
        velocidade inicial é retomada
Conclusões
Conclusões
● O Cassandra está preparado para os desafios
  da Web 2.0 e do fenômeno do Big Data
● Balanço configurável entre escalabilidade,
  disponibilidade, consistência e performance
● Escalabilidade incremental e linear
● Provado pelo mercado!
Dúvidas?
Distribuição de dados em
    escala global com
         Cassandra
  Mário Sérgio Coelho Marroquim
             mariomarroquim@gmail.com
     http://blogdomariomarroquim.wordpress.com

Mais conteúdo relacionado

Mais procurados

Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra Otávio Santana
 
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
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sqlRafael Redondo
 
Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNSLuiz Arthur
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault ToleranceFrederico Madeira
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxFrederico Madeira
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidadeMarcelo Garcia
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaLuiz Arthur
 
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoHA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoelliando dias
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros InteligentesThiago Finardi
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceLuiz Arthur
 

Mais procurados (20)

Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra
 
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
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sql
 
Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNS
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault Tolerance
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 
Google File System
Google File SystemGoogle File System
Google File System
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidade
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de Carga
 
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoHA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinito
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros Inteligentes
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta Performance
 
Cluster
ClusterCluster
Cluster
 

Semelhante a Distribuição de Dados em Escala Global com Cassandra

Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da redeLeandro Almeida
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebramGleicon Moraes
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLFernando Ike
 
Alta Disponibilidade na Prática utilizando servidores Linuxes Linux
Alta Disponibilidade na Prática utilizando servidores Linuxes LinuxAlta Disponibilidade na Prática utilizando servidores Linuxes Linux
Alta Disponibilidade na Prática utilizando servidores Linuxes Linuxelliando dias
 
Apresentação sobre adaptação de topologia em redes móveis
Apresentação sobre adaptação de topologia em redes móveisApresentação sobre adaptação de topologia em redes móveis
Apresentação sobre adaptação de topologia em redes móveisDalton Valadares
 
Seminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta PerformanceSeminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta PerformanceRonan Borges
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Lucas A. Romão
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Equpamentos Passivos Miguel Ferreira
Equpamentos Passivos  Miguel FerreiraEqupamentos Passivos  Miguel Ferreira
Equpamentos Passivos Miguel FerreiraMiguel Ferreira
 

Semelhante a Distribuição de Dados em Escala Global com Cassandra (20)

Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da rede
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebram
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
Alta Disponibilidade na Prática utilizando servidores Linuxes Linux
Alta Disponibilidade na Prática utilizando servidores Linuxes LinuxAlta Disponibilidade na Prática utilizando servidores Linuxes Linux
Alta Disponibilidade na Prática utilizando servidores Linuxes Linux
 
Apresentação sobre adaptação de topologia em redes móveis
Apresentação sobre adaptação de topologia em redes móveisApresentação sobre adaptação de topologia em redes móveis
Apresentação sobre adaptação de topologia em redes móveis
 
Seminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta PerformanceSeminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta Performance
 
Camada de enlace parte1
Camada de enlace   parte1Camada de enlace   parte1
Camada de enlace parte1
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 
Introdução ao P2P
Introdução ao P2PIntrodução ao P2P
Introdução ao P2P
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Rc02-intro-info.pdf
Rc02-intro-info.pdfRc02-intro-info.pdf
Rc02-intro-info.pdf
 
Equpamentos Passivos Miguel Ferreira
Equpamentos Passivos  Miguel FerreiraEqupamentos Passivos  Miguel Ferreira
Equpamentos Passivos Miguel Ferreira
 

Mais de Mário Marroquim

AllViXM - Final presentation
AllViXM - Final presentationAllViXM - Final presentation
AllViXM - Final presentationMário Marroquim
 
Research follow up for my PhD on Immunoinformatics - 2 years
Research follow up for my PhD on Immunoinformatics - 2 yearsResearch follow up for my PhD on Immunoinformatics - 2 years
Research follow up for my PhD on Immunoinformatics - 2 yearsMário Marroquim
 
Research follow up for my PhD on Immunoinformatics - 1 year
Research follow up for my PhD on Immunoinformatics - 1 yearResearch follow up for my PhD on Immunoinformatics - 1 year
Research follow up for my PhD on Immunoinformatics - 1 yearMário Marroquim
 
AllViXM - Initial presentation
AllViXM - Initial presentationAllViXM - Initial presentation
AllViXM - Initial presentationMário Marroquim
 
Ruby On Rails na Credishop
Ruby On Rails na CredishopRuby On Rails na Credishop
Ruby On Rails na CredishopMário Marroquim
 

Mais de Mário Marroquim (6)

AllViXM - Final presentation
AllViXM - Final presentationAllViXM - Final presentation
AllViXM - Final presentation
 
Research follow up for my PhD on Immunoinformatics - 2 years
Research follow up for my PhD on Immunoinformatics - 2 yearsResearch follow up for my PhD on Immunoinformatics - 2 years
Research follow up for my PhD on Immunoinformatics - 2 years
 
Research follow up for my PhD on Immunoinformatics - 1 year
Research follow up for my PhD on Immunoinformatics - 1 yearResearch follow up for my PhD on Immunoinformatics - 1 year
Research follow up for my PhD on Immunoinformatics - 1 year
 
AllViXM - Initial presentation
AllViXM - Initial presentationAllViXM - Initial presentation
AllViXM - Initial presentation
 
Jheat
JheatJheat
Jheat
 
Ruby On Rails na Credishop
Ruby On Rails na CredishopRuby On Rails na Credishop
Ruby On Rails na Credishop
 

Distribuição de Dados em Escala Global com Cassandra