Problema Atual
                Nova Geração
                 Quando Usar
                Players Atuais




Sistemas de Ar...
Problema Atual
                            Nova Geração
                             Quando Usar
                         ...
Problema Atual
                           Nova Geração
                                             Descrição do problema
...
Problema Atual     Características
                           Nova Geração      Nomenclatura dos sistemas
                ...
Problema Atual     Características
                          Nova Geração      Nomenclatura dos sistemas
                 ...
Problema Atual     Características
                           Nova Geração      Nomenclatura dos sistemas
                ...
Problema Atual     Características
                          Nova Geração      Nomenclatura dos sistemas
                 ...
Problema Atual
                          Nova Geração
                                            Critérios
              ...
Problema Atual
                              Nova Geração      Lista de soluções
                               Quando Usa...
Problema Atual
                                Nova Geração      Lista de soluções
                                 Quando...
Problema Atual
                             Nova Geração      Lista de soluções
                              Quando Usar ...
Problema Atual
                        Nova Geração      Lista de soluções
                         Quando Usar      Análi...
Problema Atual
                               Nova Geração      Lista de soluções
                                Quando U...
Problema Atual
                             Nova Geração      Lista de soluções
                              Quando Usar ...
Problema Atual
                          Nova Geração      Lista de soluções
                           Quando Usar      A...
Problema Atual
                               Nova Geração      Lista de soluções
                                Quando U...
Problema Atual
                Nova Geração      Lista de soluções
                 Quando Usar      Análise de Soluções
 ...
Problema Atual
                         Nova Geração      Lista de soluções
                          Quando Usar      Aná...
Problema Atual
                             Nova Geração      Lista de soluções
                              Quando Usar ...
Problema Atual
                  Nova Geração      Lista de soluções
                   Quando Usar      Análise de Soluçõ...
Problema Atual
                              Nova Geração      Lista de soluções
                               Quando Usa...
Problema Atual
                            Nova Geração      Lista de soluções
                             Quando Usar   ...
Problema Atual
                  Nova Geração      Lista de soluções
                   Quando Usar      Análise de Soluçõ...
Problema Atual
                               Nova Geração      Lista de soluções
                                Quando U...
Problema Atual
                               Nova Geração      Lista de soluções
                                Quando U...
Problema Atual
                          Nova Geração      Lista de soluções
                           Quando Usar      A...
Problema Atual
                             Nova Geração      Lista de soluções
                              Quando Usar ...
Problema Atual
                          Nova Geração      Lista de soluções
                           Quando Usar      A...
Problema Atual
                             Nova Geração      Lista de soluções
                              Quando Usar ...
Problema Atual
                        Nova Geração      Lista de soluções
                         Quando Usar      Análi...
Problema Atual
                            Nova Geração      Lista de soluções
                             Quando Usar   ...
Problema Atual
                 Nova Geração      Lista de soluções
                  Quando Usar      Análise de Soluções...
Problema Atual
                  Nova Geração      Lista de soluções
                   Quando Usar      Análise de Soluçõ...
Upcoming SlideShare
Loading in …5
×

Sistemas Armazenamento Larga Escala

2,454 views

Published on

Pequena descrição dos principais players dessa nova gerção de banco de dados distribuídos. Ressalta pontos fortes e fracos de cada um.

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,454
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
70
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Sistemas Armazenamento Larga Escala

  1. 1. Problema Atual Nova Geração Quando Usar Players Atuais Sistemas de Armazenamento de Larga Escala Luís Carlos Dill Junges Fundação Certi Universidade Federal de Santa Catarina 23 de outubro de 2009 Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  2. 2. Problema Atual Nova Geração Quando Usar Players Atuais Conteúdo 1 Problema Atual Descrição do problema 2 Nova Geração Características Nomenclatura dos sistemas Comparação com BD relacional Vantagens - Desvantagens 3 Quando Usar Critérios 4 Players Atuais Lista de soluções Análise de Soluções Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  3. 3. Problema Atual Nova Geração Descrição do problema Quando Usar Players Atuais Problema Atual Descrição do Problema Atualmente com SGDBR alguns pontos não são resolvidos satisfatoriamente, a saber: Quantidade de dados muito grande Muitas requisições por segundo Não são facilmente escaláveis Somente as leituras são escaláveis (ACID) Distribuir escritas é praticamente impossível Escritas cam limitas a um node (SPOF) Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  4. 4. Problema Atual Características Nova Geração Nomenclatura dos sistemas Quando Usar Comparação com BD relacional Players Atuais Vantagens - Desvantagens Nova Geração Características Esta nova geração de sistemas se baseia, em geral, no aspectos: Alta disponibilidade Escalável através da adição de máquinas simples (horizontal) Balanceamento online de carga no cluster Esquema exível ou inexistente Tradeo entre disponibilidade e consistência Queries orientadas a chave-valor Respeito ao teorema CAP (escolha duas de:) Consistency (dados consistentes ao longo dos nodes) Availability (sempre disponível - nodes falham) Partition Tolerance (opera se nodes falham ) Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  5. 5. Problema Atual Características Nova Geração Nomenclatura dos sistemas Quando Usar Comparação com BD relacional Players Atuais Vantagens - Desvantagens Nova Geração Nomeclatura Tais sistemas, embora não possuam um nome própria ainda, são conhecidos como: Key-Value Database Document-Oriented Attribute-Oriented Distributed Database Distributed Hash Table (DHT) Internet-Facing Sharded sorted arrays Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  6. 6. Problema Atual Características Nova Geração Nomenclatura dos sistemas Quando Usar Comparação com BD relacional Players Atuais Vantagens - Desvantagens Nova Geração SGDB vs Chave-Valor Contém tabelas, colunas, linhas (tuplas) ACID (Atomicidade, Consistência, Isolamento, Durabilidade) Normalizado para remover duplicação de dados Relacional Pode-se colocar lógica (triggers, procedures) Vários tipos de queries Denição do esquema Mapeamento objeto-relational (hibernate) Domínios parecidos com tabelas Items identicados somente pela chave Alta duplicação de dados Chave-Valor Sem esquema denido Suporte a queries extremamente simples Lógica e integridade de dados no código da aplicação Consistência eventual Mapeamento dos objetos para chave-valor é simples Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  7. 7. Problema Atual Características Nova Geração Nomenclatura dos sistemas Quando Usar Comparação com BD relacional Players Atuais Vantagens - Desvantagens Nova Geração Vantagens Facilmente escalável horizontalmente Sem mapeamento objeto-relational (maiores velocidades) Desvantagens Sem restrições de integridade Aplicação responsável pela integridade Banco de dados é uma representação da aplicação (dados restrito à aplicação) Todos em fase alpha/beta e sem padrão denido para comunicação (ANSI-SQL92 Standard) Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  8. 8. Problema Atual Nova Geração Critérios Quando Usar Players Atuais Quando Usar Critérios Os dados são visivelmente document-oriented de tal modo que o armazenamento é mais fácil quando comparado ao relacional. O desenvolvimento é pesadamente orientado a objetos e os sistemas chave-valor minimizam a necessidade de camadas adicionais para mapeamento objeto-relational. O futuro da aplicação levará o sistema a ter alta-demanda, necessidade de alta-escalabilidade, muitos dados na ordem de TB, escalabilidade distribuída. Fatores que necessitam escalabilidade horizontal. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  9. 9. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Players Atuais Lista de Soluções Nome Client API Aplicação Voldemort Java linkedin.com Cassandra Thrift facebook,digg,rackspace HBase Thrift Custom API, RESTFul Yahoo cluster CouchDB HTTP, Json Várias aplicações MongoDB Python, Ruby, Java, C++ Várias aplicações pequenas Redis Python, Ruby, Java, Erlang lloogg.com Memcache Python, Ruby, Java, Erlang Várias aplicações grandes Tokyo Cabinet/Tyrant Java, Perl, Ruby mixi.jp ThruDB Thrift junkdepot.com Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  10. 10. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Voldemort Características Sistema baseado em chave valor Duas funções (set e get) Para persistência utiliza BDB, MySQL Usa sistema de versão nos dados Aplicação Prática Voldemort é usado no LinkedIn.com para o armazenamento de certas relações que necessitam de alta disponibilidade. As velocidades de leitura são da ordem de 19 384 req/segundo e para escrita 16 559 req/segundo conforme relatado pelo desenvolvedores. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  11. 11. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Voldemort Pontos Fortes Boa documentação Replicação e particionamento de dados Adaptado a load balancer com propostas de cluster Satisfaz as propriedades ACID Sem SPOF (Single Point of Failure) Pontos Fracos Inserir novo node em live mode não é possível BDB não otimizado para grandes valores Os dados precisam caber confortavelmente na memória para processamento Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  12. 12. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Voldemort Figura: Arquiteturas para uso do Voldemort Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  13. 13. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Cassandra Características Um sistema chave valor mais completo Conceitos do BigTable do Google e Dynamo da Amazon 4 a 5 Níveis de armazenamento (KeySpace, ColumnFamilies, SuperColumnsa , Columns, Value) Usa conceito de versão para os dados a opcional Aplicação Prática Atualmente está em uso no Facebook, rackspace e digg. No facebook aparentemente esta em uso no inbox search onde há 40 TB de dados distribuídos entre 120 máquinas em centros separados. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  14. 14. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Cassandra Pontos Fortes Alta disponibilidade Escalabilidade incremental Sem SPOF (Single Point of Failure) Replicação de dados Adicionar nodes on cluster em live mode Leituras e Escritas atômicas dentro de um ColumnFamily Baixa Administração Pontos Fracos Sem documentação API versão atual nebulosa e obscura Diculdade em rodar o exemplo mais simples Consistência Eventual Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  15. 15. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais HBase Características Cópia do BigTable do google Orientado a colunas (chave-valor) Performance associada ao número de nodes Arquitetura master-slave Aplicação Prática HBase esta em uso por um cluster de 10 000 PCs dentro da estrutura do Yahoo. O Baidu (google chinês) também usa HBase para algumas aplicações. Há um lista extensa das soluções em http://wiki.apache.org/hadoop/Hbase/PoweredBy Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  16. 16. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais HBase Pontos Fortes Sem SPOF (Single Point of Failure) (versão 0.20) Latência diminuída drasticamente (versão 0.20) Roda em cima do HDFS (Hadoop Distributed File System) Capacidade de rodar tarefas MapReduce Boa Documentação Integração com sub projetos do Apache Hadoop Pontos Fracos Latência muito alta para páginas dinânicas (removido versão 0.20) Existência de SPOF (removido versão 0.20) Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  17. 17. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais HBase Figura: Arquitetura HBase Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  18. 18. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais CouchDB Características Sistema orietando a documentos Sistema desestruturado (formato json para documentos) Muito similar ao SimpleDB da Amazon Replicação assíncrona Administração por interface gráca pelo browser Aplicação Prática Vários projetos usam CouchDB pela sua facilidade em armazenamento de dados. Uma lista completa pode ser encontrada em http://wiki.apache.org/couchdb/CouchDB Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  19. 19. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais CouchDB Pontos Fortes Utilização de MapReduce Replicação entre nodes manualmente API via json bem intuitiva e simples Suporte a queries (suporte a criação de views ) Views são funções Javascript Boa documentação Pontos Fracos Todo os dados precisam caber em cada node Implementação em estágio alpha Segurança inexistente (precisa rodar em ambiente seguro Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  20. 20. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais CouchDB Figura: Arquitetura CouchDB Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  21. 21. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais MongoDB Características Orientado a documentos Utilizado formato json e bson (binary json) Suporte comercial Aplicação Prática Utilizado como armazenamento de dados do SourceForge para a página dos projetos e para as páginas de download de todos os projetos. Há um lista extensa das soluções em http://www.mongodb.org/display/DOCS/Production+Deployments Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  22. 22. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais MongoDB Pontos Fortes Vasta gama de Queries dinâmicas Replicação de dados Eciente para armazenamento de grandes objetos (imagens, vídeos) Escalonamento horizontal (auto-sharding) em breve Pontos Fracos Replicação somente entre 2 nodes Vários pontos de SPOF Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  23. 23. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais MongoDB Figura: Arquitetura MongoDB Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  24. 24. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Redis Características Sistema chave-valor incrementado (mais operações que outros) Todas operações na memória (escritas assíncronas no HD) Possui jdbc para java (não é SQL o acesso) Sharding responsabilidade da biblioteca cliente Valores podem ser bytes, lists, sets Aplicação Prática Foi desenvolvido para um site que mapeia em tempo real os acessos ao website http://lloogg.com com informações do cliente. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  25. 25. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Redis Pontos Fortes Velocidades de leitura e escrita da ordem de 100 000 req/segundo Pode-se inserir nova máquina em live mode com distribuiçãos de dados Possui uma gama maior de operações de procura além dos simples par set - get Incrivelmente rápido nas leituras/escritas Pontos Fracos Todos os dados precisam caber na memória Possui SPOF em modo master-slave Pode haver perda de dados decorrente da escrita assíncrona Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  26. 26. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Memcache Características Sistema chave-valor in-memory Todas operações na memória (usado para cache) Sem um sistema de armazenamento de persitência Velocidades em tornode 38 000 req /segundo no Flickr Aplicação Prática Memcache é um produto largamento usado nas aplicações web que necessitem maiores velocidades. Esta em versão robusta e estável sendo usado por várias empresas dentre as quais se destaca a criadora do sistema, livejournal.com. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  27. 27. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Memcache Pontos Fortes Extremamente rápido nas escritas/leituras Pode-se inserir nova máquina em live mode com distribuiçãos de dados (basta rodar daemon) Pode funcionar como second layer cache do hibernate para aumentar a velocidade Possui biblioteca de integração com PostgreSQL (procedure e triggers acessam o memcache diretamente) Integração similar para o MySQL Inexistência de SPOF (falha na máquina causa faz com que o BD seja requisitado novamente) Pontos Fracos Dados somente em RAM (dados jogados fora) Sem persitência de dados Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  28. 28. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Tokyo Cabinet/Tyrant Características Sistema chave-valor com persistência Replicação assíncrona entre servidores Sem um sistema de armazenamento de persitência Velocidades em tornode 38 000 req /segundo no Flickr Aplicação Prática Tokyo Cabinet/Tyrant é usado em mixi.jp. Um 'facebook' japonês. Neste exemplo, possui 20 milhões de dados (20 bytes cada) com mais de 10 000 udpates por segundo utilizando memcache. Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  29. 29. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Tokyo Cabinet/Tyrant Pontos Fortes Extremamente rápido nas escritas/leituras Várias formas de armazenamento (Hash, B-Tree, etc) Velocidades de acesso rápidas (58 000 reqs/segundo) Respeito às propriedades ACID Integração com várias linguagens de programação Integrado com o Tokyo Dystropia (framework para procura de texto) Pontos Fracos Pouca documentação Sem muitos casos de uso Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  30. 30. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais ThruDB Características Sistema orientado a documentos Composto de 4 componentes Thrudoc (storage engine) Throxy (Service proxy and aggregator) Thrucene para indexação baseado em Lucene Componente de mensagens Pode ser usado em conjunto com HD e o Amazon S3 Aplicação Prática Atualmente em uso no junkdepot.com Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  31. 31. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais ThruDB Pontos Fortes Possui boa integração para ser usado com Amaxon S3 Parece ser escolha melhor para usar com Amazon EC2 ao invés de CouchDB Pontos Fracos Pouca documentação Sem muitos casos de uso Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  32. 32. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais ThruDB Figura: Integração com Amazon S3 Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala
  33. 33. Problema Atual Nova Geração Lista de soluções Quando Usar Análise de Soluções Players Atuais Contato Luís Carlos Dill Junges luis.junges@gmail.com lcj@certi.org.br Luís Carlos Dill Junges Sistemas de Armazenamento de Larga Escala

×