of 33/33

Distributed Databases Overview

  • View
    702

  • Download
    2

Embed Size (px)

DESCRIPTION

This document gives an small overview of some currently available distributed databases. It includes the major players of this new database flavor

Text of Distributed Databases Overview

  • 1. Problema Atual Nova GeraoQuando Usar Players Atuais Sistemas de Armazenamento de Larga Escala Lus Carlos Dill Junges Fundao CertiUniversidade Federal de Santa Catarina 23 de outubro de 2009 Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala

2. Problema Atual Nova GeraoQuando Usar Players AtuaisContedo1 Problema Atual Descrio do problema 2 Nova Gerao Caractersticas Nomenclatura dos sistemas Comparao com BD relacional Vantagens - Desvantagens 3 Quando Usar Critrios 4 Players Atuais Lista de solues Anlise de SoluesLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 3. Problema AtualNova GeraoDescrio do problema Quando UsarPlayers AtuaisProblema Atual Descrio do Problema Atualmente com SGDBR alguns pontos no so resolvidos satisfatoriamente, a saber: Quantidade de dados muito grande Muitas requisies por segundo No so facilmente escalveis Somente as leituras so escalveis (ACID) Distribuir escritas praticamente impossvel Escritas cam limitas a um node (SPOF)Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 4. Problema Atual CaractersticasNova GeraoNomenclatura dos sistemas Quando UsarComparao com BD relacionalPlayers AtuaisVantagens - DesvantagensNova GeraoCaractersticas Esta nova gerao de sistemas se baseia, em geral, no aspectos:Alta disponibilidadeEscalvel atravs da adio de mquinas simples (horizontal)Balanceamento online de carga no clusterEsquema exvel ou inexistenteTradeo entre disponibilidade e consistnciaQueries orientadas a chave-valorRespeito ao teorema CAP (escolha duas de:)Consistency (dados consistentes ao longo dos nodes)Availability (sempre disponvel - nodes falham)Partition Tolerance (opera se nodes falham )Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 5. Problema Atual Caractersticas Nova GeraoNomenclatura dos sistemasQuando UsarComparao com BD relacional Players AtuaisVantagens - DesvantagensNova GeraoNomeclatura Tais sistemas, embora no possuam um nome prpria ainda, so conhecidos como:Key-Value DatabaseDocument-OrientedAttribute-OrientedDistributed DatabaseDistributed Hash Table (DHT)Internet-FacingSharded sorted arrays Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 6. Problema Atual CaractersticasNova GeraoNomenclatura dos sistemas Quando UsarComparao com BD relacionalPlayers AtuaisVantagens - DesvantagensNova GeraoSGDB vs Chave-ValorContm tabelas, colunas, linhas (tuplas)ACID (Atomicidade, Consistncia, Isolamento, Durabilidade)Normalizado para remover duplicao de dados Relacional Pode-se colocar lgica (triggers, procedures)Vrios tipos de queriesDenio do esquemaMapeamento objeto-relational (hibernate)Domnios parecidos com tabelasItems identicados somente pela chaveAlta duplicao de dadosChave-Valor Sem esquema denidoSuporte a queries extremamente simplesLgica e integridade de dados no cdigo da aplicaoConsistncia eventualMapeamento dos objetos para chave-valor simplesLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 7. Problema Atual Caractersticas Nova GeraoNomenclatura dos sistemasQuando UsarComparao com BD relacional Players AtuaisVantagens - DesvantagensNova GeraoVantagens Facilmente escalvel horizontalmente Sem mapeamento objeto-relational (maiores velocidades)Desvantagens Sem restries de integridade Aplicao responsvel pela integridade Banco de dados uma representao da aplicao (dados restrito aplicao) Todos em fase alpha/beta e sem padro denido para comunicao (ANSI-SQL92 Standard)Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 8. Problema Atual Nova Gerao CritriosQuando Usar Players AtuaisQuando Usar CritriosOs dados so visivelmente document-oriented de tal modo queo armazenamento mais fcil quando comparado ao relacional.O desenvolvimento pesadamente orientado a objetos e ossistemas chave-valor minimizam a necessidade de camadasadicionais para mapeamento objeto-relational.O futuro da aplicao levar o sistema a ter alta-demanda,necessidade de alta-escalabilidade, muitos dados na ordem deTB, escalabilidade distribuda. Fatores que necessitamescalabilidade horizontal.Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 9. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisPlayers Atuais Lista de SoluesNome Client APIAplicaoVoldemortJavalinkedin.comCassandraThriftfacebook,digg,rackspaceHBaseThrift Custom API, RESTFul Yahoo clusterCouchDBHTTP, JsonVrias aplicaesMongoDBPython, Ruby, Java, C++ Vrias aplicaes pequenasRedisPython, Ruby, Java, Erlanglloogg.comMemcache Python, Ruby, Java, ErlangVrias aplicaes grandesTokyo Cabinet/Tyrant Java, Perl, Rubymixi.jpThruDB Thriftjunkdepot.comLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 10. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisVoldemort Caractersticas Sistema baseado em chave valor Duas funes (set e get) Para persistncia utiliza BDB, MySQL Usa sistema de verso nos dadosAplicao Prtica Voldemort usado no LinkedIn.com para o armazenamento de certas relaes que necessitam de alta disponibilidade. As velocidades de leitura so da ordem de 19 384 req/segundo e para escrita 16 559 req/segundo conforme relatado pelo desenvolvedores.Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 11. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisVoldemort Pontos Fortes Boa documentao Replicao 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 no possvel BDB no otimizado para grandes valores Os dados precisam caber confortavelmente na memria para processamentoLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 12. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisVoldemort Figura: Arquiteturas para uso do VoldemortLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 13. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisCassandraCaractersticas Um sistema chave valor mais completo Conceitos do BigTable do Google e Dynamo da Amazon 4 a 5 Nveis de armazenamento (KeySpace, ColumnFamilies, SuperColumnsa , Columns, Value) Usa conceito de verso para os dadosaopcional Aplicao Prtica Atualmente est em uso no Facebook, rackspace e digg. No facebook aparentemente esta em uso no inbox search onde h 40 TB de dados distribudos entre 120 mquinas em centros separados.Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 14. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisCassandraPontos Fortes Alta disponibilidade Escalabilidade incremental Sem SPOF (Single Point of Failure) Replicao de dados Adicionar nodes on cluster em live mode Leituras e Escritas atmicas dentro de umColumnFamilyBaixa Administrao Pontos Fracos Sem documentao API verso atual nebulosa e obscura Diculdade em rodar o exemplo mais simples Consistncia Eventual Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 15. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisHBaseCaractersticas Cpia do BigTable do google Orientado a colunas (chave-valor) Performance associada ao nmero de nodes Arquitetura master-slaveAplicao Prtica HBase esta em uso por um cluster de 10 000 PCs dentro da estrutura do Yahoo. O Baidu (google chins) tambm usa HBase para algumas aplicaes. H um lista extensa das solues em http://wiki.apache.org/hadoop/Hbase/PoweredBy Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 16. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisHBase Pontos Fortes Sem SPOF (Single Point of Failure) (verso 0.20) Latncia diminuda drasticamente (verso 0.20) Roda em cima do HDFS (Hadoop Distributed File System) Capacidade de rodar tarefas MapReduce Boa Documentao Integrao com sub projetos do Apache Hadoop Pontos Fracos Latncia muito alta para pginas dinnicas (removido verso 0.20) Existncia de SPOF (removido verso 0.20)Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 17. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisHBase Figura: Arquitetura HBaseLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 18. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisCouchDB CaractersticasSistema orietando a documentosSistema desestruturado (formato json para documentos)Muito similar ao SimpleDB da AmazonReplicao assncronaAdministrao por interface grca pelo browser Aplicao PrticaVrios projetos usam CouchDB pela sua facilidade emarmazenamento de dados. Uma lista completa pode ser encontradaem http://wiki.apache.org/couchdb/CouchDB Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 19. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisCouchDBPontos FortesUtilizao de MapReduceReplicao entre nodes manualmenteAPI via json bem intuitiva e simplesSuporte a queries (suporte a criao de views)Views so funes Javascript Boa documentaoPontos FracosTodo os dados precisam caber em cada nodeImplementao em estgio alphaSegurana inexistente (precisa rodar em ambiente seguro Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 20. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisCouchDBFigura: Arquitetura CouchDBLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 21. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisMongoDBCaractersticasOrientado a documentosUtilizado formato json e bson (binary json)Suporte comercial Aplicao PrticaUtilizado como armazenamento de dados do SourceForge para a pgina dos projetos epara as pginas de download de todos os projetos. H um lista extensa das soluesem http://www.mongodb.org/display/DOCS/Production+Deployments Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 22. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisMongoDB Pontos FortesVasta gama de Queries dinmicasReplicao de dadosEciente para armazenamento de grandes objetos (imagens, vdeos)Escalonamento horizontal (auto-sharding) em brevePontos FracosReplicao somente entre 2 nodes Vrios pontos de SPOF Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 23. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisMongoDBFigura: Arquitetura MongoDBLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 24. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisRedis Caractersticas Sistema chave-valor incrementado (mais operaes que outros) Todas operaes na memria (escritas assncronas no HD) Possui jdbc para java (no SQL o acesso) Sharding responsabilidade da biblioteca clienteValores podem ser bytes, lists, sets Aplicao Prtica Foi desenvolvido para um site que mapeia em tempo real os acessos ao website http://lloogg.com com informaes do cliente.Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 25. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisRedis Pontos Fortes Velocidades de leitura e escrita da ordem de 100 000 req/segundo Pode-se inserir nova mquina em live mode com distribuios de dados Possui uma gama maior de operaes de procura alm dos simples par set- getIncrivelmente rpido nas leituras/escritas Pontos Fracos Todos os dados precisam caber na memria Possui SPOF em modo master-slave Pode haver perda de dados decorrente da escrita assncronaLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 26. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisMemcacheCaractersticas Sistema chave-valor in-memory Todas operaes na memria (usado para cache) Sem um sistema de armazenamento de persitncia Velocidades em tornode 38 000 req /segundo no FlickrAplicao Prtica Memcache um produto largamento usado nas aplicaes web que necessitem maiores velocidades. Esta em verso robusta e estvel sendo usado por vrias empresas dentre as quais se destaca a criadora do sistema, livejournal.com.Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 27. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisMemcachePontos Fortes Extremamente rpido nas escritas/leituras Pode-se inserir nova mquina em live mode com distribuios de dados (basta rodar daemon) Pode funcionar como second layer cache do hibernate para aumentar a velocidade Possui biblioteca de integrao com PostgreSQL (procedure e triggers acessam o memcache diretamente) Integrao similar para o MySQL Inexistncia de SPOF (falha na mquina causa faz com que o BD seja requisitado novamente) Pontos Fracos Dados somente em RAM (dados jogados fora) Sem persitncia de dados Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 28. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisTokyo Cabinet/Tyrant Caractersticas Sistema chave-valor com persistncia Replicao assncrona entre servidores Sem um sistema de armazenamento de persitncia Velocidades em tornode 38 000 req /segundo no FlickrAplicao Prtica Tokyo Cabinet/Tyrant usado em mixi.jp. Um 'facebook' japons. Neste exemplo, possui 20 milhes de dados (20 bytes cada) com mais de 10 000 udpates por segundo utilizando memcache. Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 29. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisTokyo Cabinet/Tyrant Pontos Fortes Extremamente rpido nas escritas/leituras Vrias formas de armazenamento (Hash, B-Tree, etc) Velocidades de acesso rpidas (58 000 reqs/segundo) Respeito s propriedades ACID Integrao com vrias linguagens de programao Integrado com o Tokyo Dystropia (framework para procura de texto) Pontos Fracos Pouca documentao Sem muitos casos de usoLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 30. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisThruDBCaractersticasSistema orientado a documentos Composto de 4 componentesThrudoc (storage engine)Throxy (Service proxy and aggregator)Thrucene para indexao baseado em LuceneComponente de mensagens Pode ser usado em conjunto com HD e o Amazon S3 Aplicao PrticaAtualmente em uso no junkdepot.comLus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 31. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisThruDB Pontos FortesPossui boa integrao para ser usado com Amaxon S3Parece ser escolha melhor para usar com Amazon EC2 ao invs de CouchDBPontos FracosPouca documentaoSem muitos casos de uso Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 32. Problema AtualNova GeraoLista de solues Quando UsarAnlise de SoluesPlayers AtuaisThruDBFigura: Integrao com Amazon S3Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala 33. Problema Atual Nova GeraoLista de soluesQuando UsarAnlise de Solues Players AtuaisContato Lus Carlos Dill Junges [email protected] [email protected] Lus Carlos Dill Junges Sistemas de Armazenamento de Larga Escala