Entendendo a Arquitetura de Armazenamento, parte 1

  • 1,092 views
Uploaded on

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 …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,092
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for 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

Transcript

  • 1. Entendendo a Arquitetura de Armazenamento
  • 2. Tópicos Abordados Características arquiteturais dos seguintes data stores:  Apache HBase  MongoDB 2
  • 3. Apache HBase e Hadoop
  • 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. 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. Armazenamento Distribuído Arquitetura HBase:  Padrão master-worker  Master nodes  Range servers  Regions  WAL (Write-Ahead-Logs) 6
  • 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. 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. 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. 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. 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. 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. MongoDB
  • 14. MongoDB  Armazenagem de documentos (BSON)  Arquivos Mapeados em Memória  Coleções e índices  Confiabilidade e durabilidade  Escalabilidade horizontal 14
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Obrigado!