Entendendo a Arquitetura de Armazenamento, parte 1

1.860 visualizações

Publicada em

Conceitos-chave na arquitetura de armazenamento dos data-stores Apache HBase e MongoDB. Sobre o HBase, são apresentados sua arquitetura master-slave e o conceito de regions. Sobre MongoDB apresentamos o formato BSON e a alocação de arquivos.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.860
No SlideShare
0
A partir de incorporações
0
Número de incorporações
939
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • This means NoSQL is not a single product or even a single technology. It represents a class of products and a collection of diverse, and sometimes related, concepts about data storage and manipulation
  • om
  • Entendendo a Arquitetura de Armazenamento, parte 1

    1. 1. Entendendo a Arquitetura de Armazenamento
    2. 2. Tópicos Abordados Características arquiteturais dos seguintes data stores:  Apache HBase  MongoDB 2
    3. 3. Apache HBase e Hadoop
    4. 4. Ecossistema Hadoop Iniciativa open-source baseada na stack Google:  HDFS (Hadoop Distributed File System)  Hadoop YARN/MapReduce  HBase  ZooKeeper  Ambari, Cassandra, Hive, etc. 4
    5. 5. HBase Banco de dados orientados a colunas:  Tabelas agrupam famílias de colunas  Uma família de colunas possui n colunas  Uma linha é um conjunto de valores de colunas identificado por uma chave única  Linhas são ordenadas de acordo com a chave única 5
    6. 6. Armazenamento Distribuído Arquitetura HBase:  Padrão master-worker  Master nodes  Range servers  Regions  WAL (Write-Ahead-Logs) 6
    7. 7. Padrão master-worker  Arquitetura compostar por:  Master : nó central que coordena e configura os demais nós;   Workers : são submetidos à coordenação e distribuição do master; Na arquitetura Hbase:  Master é o responsável por manter os metadados e distribuir os nós entre os Region Servers  Por sua vez, os Region Servers armazenam as Regions (regiões de dados) 7
    8. 8. Master Node Na arquitetura Hbase, o node Master :  Mantém e distribui os metadados  Oferece a interface para criação de tabelas, colunas, etc.  Mantém as tabelas -ROOT- e .META.  Executa os seguintes processos:  LoadBalancer: realiza o balanceamento de carga movendo e atribuindo Regions entre os nós  CatalogJanitor : de tempos em tempos faz a limpeza dos metadados 8
    9. 9. Region Servers   São os nós que armazenam cada region de cada tabela Processos:  CompactSplitThread : verifica necessidade splits e compactações ocasionais  MajorCompactionChecker : verifica compactações maiores  MemStoreFlusher : descarrega alterações em memória para arquivos  LogRoller : faz a limpeza de logs antigos 9
    10. 10. Regions São as unidades de dados nas quais são dividas as tabelas (ou seja, as tabelas são divididas em regions )  A cada region corresponde um intervalo de chaves (rowkeys ) atribuídas pelo master  Cada region é atribuída pelo master a um regionserver. As atribuições são mantidas no arquivo .META.  Podem sofrer split (quando ultrapassa um treshold) ou também merge  10
    11. 11. Region  Cada region engloba uma ou mais stores Cada store armazena exatamente uma família de colunas (column family)   Cada store é composta por:   Uma MemStore : armazenamento em memória das operações sobre os dados Um ou mais Hfiles : arquivos de dados propriamente ditos. Formato inspirado no SSTable (proposto pela Google) 11
    12. 12. Write-Ahead-Log  Utilizado para manter a consistências dos dados Alterações são escritas primeiros no arquivo WAL (podem ser conferidos no diretório hbase/logs)  WAL MemStore FileStore 12
    13. 13. MongoDB
    14. 14. MongoDB  Armazenagem de documentos (BSON)  Arquivos Mapeados em Memória  Coleções e índices  Confiabilidade e durabilidade  Escalabilidade horizontal 14
    15. 15. Armazenagem de Documentos O formato JSON é conveniente para leitura, mas ineficiente para armazenagem e transmissão  O formato BSON (Binary jSON) mantém a semântica dos documentos mas é mais eficiente  Forma serializada do JSON   Especificação completa em:  http://bsonspec.org/#/specification 15
    16. 16. JSON x BSON JSON: {hello:”world”} BSON: x16 x00 Tamanho variável x00 x00 <conteúdo do documento > 4 bytes: tamanho do documento x02 Tipo do valor x00 1 Byte x00: fim do documento hello Chave “world” Valor 16
    17. 17. BSON x02 Tipo do valor h x68 e x65 “world” hello Chave l l x6c o x6c Valor 0 x6f x00 A chave é uma string no estilo C Tamanho da string x06 x00 x00 x00 w x77 o x6f r l x72 d x6c 0 x64 x00 17
    18. 18. BSON Principais tipos de conteúdo: 01 02 03 05 09 0D 10 Ponto-flutuante (double) String em UTF-8 Documento aninhado Conteúdo binário Data UTC Código Javascript Inteiro de 32-bit 18
    19. 19. BSON Exemplo final:  JSON:   {hello : “world”} BSON: 16 00 00 00 02 68 65 6C 6C 6F 00 06 00 00 00 77 6F 72 6C 64 00 00 19
    20. 20. Organização dos Arquivos  O banco é organizado em 2 tipos de arquivos:  Extends: arquivos de dados  Namespaces: metadados sobre coleções e índices 20
    21. 21. Extends  São os arquivos que armazenam os documentos Documentos são gravados no formato BSON, organizado como lista duplamente encadeada   Índice seguem estrutura de árvore-B Seguem a nomenclatura <db-name>.0, <db-name>.1, …, <db-name>.n  Tem tamanho pré-fixado 0 → 64MB, 1 → 128MB, …, até o tamanho máximo de 2GB  21
    22. 22. Namespaces  Segue a forma <db-name>.<collection-name>  Índices contam como namespaces  São gravados em arquivos de metadados  Possuem a nomenclatura <db-name>.ns  Tamanho padrão: 16MB (24.000 nomes) 22
    23. 23. Referências Shashank Tiwari (2011). Professional NoSQL, 361p. Wiley, capítulo 1, “NoSQL: what is it and why you need it” http://docs.mongodb.org/manual/ http://hbase.apache.org/book/architecture.html http://bsonspec.org/#/specification http://www.polyspot.com/en/blog/2012/understanding-mongodbstorage/ 23
    24. 24. Obrigado!

    ×