Download - SGBD - Instituto de Informáticajcs/SGBD-cap11.pdf · Níveis de RAID RAID nível 4: Organização de paridade intercalada por bloco; RAID nível 5: Organização de paridade intercalada

Transcript

SGBD

Membros:

Leandro Cardoso Aguiar

Murillo Parreira

Rafael Gondim Peixoto

Tópico

Capítulo 11

Armazenamento e consulta de dados

Introdução

● Começa com uma visão geral do meio de armazenamento físico;

● Mecanismos para reduzir as chances de perda de dados devido a falhas;

● Como os registros são mapeados em arquivos e posteriormente são mapeados em bits no disco;

Introdução

● Análise de baixo nível do modelo de banco de dados;

● Características dos meios de armazenamento básicos, seus usos mais comuns, vantagens e desvantagens;

● Estruturas de dados que permitem acesso rápido aos dados;

Visão geral dos meios de armazenamento físicos

● Variedade de tipos de armazenamento de dados;

● Classificados pela:– Velocidade com que os dados podem ser acessados;– Custo por unidade de dados para comprar o meio;– Confiabilidade do meio.

● Destacam­se os seguintes meios;

Principais meios de armazenamento

● Cache:– Forma de armazenamento mais rápida e dispendiosa.

● Memória principal:– Utilizada para os dados que estão disponíveis serem 

operados;– Muito pequena para armazenar todo um BD;– Conteúdo se perde com falta de energia ou falha.

Principais meios de armazenamento

● Memória Flash:– Dados sobrevivem a falta de energia;– Escrever implica em apagar todo o BD, para se 

escrever novamente;– Popular para substituir disco magnético com relação à 

pequenos volumes de dados;

● Disco magnético:– Principal meio de armazenamento de dados a longo 

prazo;– Move­se os dados do disco para a memória para 

serem acessados;

Principais meios de armazenamento

● Armazenamento ótico:– CD, DVD, e suas variações;– Geralmente usados para backup dos dados de um 

BD.

● Armazenamento em Fita:– Muito usado para backup;– Mais barata que os discos, porém acesso mais lento 

dos dados;– Acesso sequencial.

Hierarquia

Discos magnéticos

● Tamanho dos discos cresce anualmente;

● Um BD grande pode exigir centenas de discos;

● São relativamente simples:– Placas;– Trilhas;– Setores;– Cabeça de leitura­escrita;

Discos magnéticos

● Placa possui forma circular plana, duas superfícies cobertas com material magnético;

● Cabeça de leitura­escrita fica posicionada acima da superfície da placa;

● A superfície dos disco é dividida em trilhas:

● Trilhas são subdivididas em setores, que são a menor unidade de informação do disco;

Discos magnéticos

● Cada lado da placa de um disco possui uma cabeça de leitura­escrita;

● Cabeça de leitura­escrita move pela placa para acessar diferentes trilhas;

● Um disco contém muitas placas:

Figura do disco

Discos magnéticos

● Cabeças são mantidas mais próximo possível da placa;

● Cabeça flutua alguns micros da superfície do disco;

● Quedas de cabeça podem ser um problema;

● Controladora de disco realiza a interface entre o sistema de computador e o hardware;

● Realiza check sum;

Discos magnéticos

● Controladoras também remapeam os setores defeituosos;

● Discos são conectados por meio de uma interconexão de alta velocidade;

● Diversas interfaces fazem esse papel:– IDE;– ATA, PATA, SATA;– SCSI.

Discos magnéticos

● Podem estar situados remotamente e ser conectados por uma rede de alta velocidade à controladora;

● Arquitetura SAN (Storage Area Network);

● RAID;

● Arquitetura NAS (Network Attached Storage)

Medidas de desempenho

● Principais medidas das qualidades de um disco:– Capacidade;– Tempo de acesso;– Taxa de transferência de dados;– Confiabilidade;

● Tempo de acesso é o tempo desde quando uma solicitação de leitura ou escrita é emitida até quando inicia a transferência de dados;

Medidas de desempenho● Braço se move de modo que fique posicionado sobre a 

trilha correta, e esperar até que o setor apareça sobre ele enquanto o disco gira, tempo de busca;

● Tempo de busca médio;

● Tempo de busca médio é 1/3 do tempo de busca do pior caso;

● Variam atualmente entre 4 e 10 milissegundos;

Medidas de desempenho

● Tempo de latência rotacional;

● Velocidades rotacionais hoje variam entre 5400 rotações por minuto até 15000 rotações por minuto;

● Metade de uma rotação do disco é necessária para que o início do setor desejado apareça sob a cabeça;

● Tempo de latência média ­> Metade do tempo para a rotação completa do disco;

Medidas de desempenho

● Tempo de acesso = Tempo de busca + Tempo de Latência, variando então de 8 a 20 milissegundos;

● Taxa de transferência dos dados;

● Sistemas de disco atuais admitem taxa máxima de 25 a 100 mB/s;

● Trilhas mais internas, a taxa é menor;

Medidas de desempenho

● Tempo médio para a falha (MTTF), medida da confiabilidade do disco;

● De acordo com fabricantes, o tempo médio para a falha de um disco varia entre 500.000 a 1.200.000 horas;

● Na prática é um pouco diferente;

Otimização de acesso ao bloco de disco

● Solicitações de E/S especifica o endereço no disco a ser referenciado;

● Endereço está na forma de número de bloco;

● Bloco ­> Unidade lógica consistindo de um número fixo de setores contíguos;

● Variam de 512 bytes a alguns Kbytes;

Otimização de acesso ao bloco de disco

● Diversas técnicas para melhorar a velocidade de acesso aos blocos no disco:

– Escalonamento;– Organização de arquivo;– Buffer de escrita não­volátil;– Disco de log.

Escalonamento

● Solicita blocos na ordem em que eles passarão pela cabeça de leitura­escrita;

● Algoritmos de escalonamento de braço do disco;

● Algoritmo do elevador;

Organização de arquivo

● Organizar blocos de uma maneira que corresponda ao modo como são acessados;

● Coloca o peso sobre o programador ou administrador do sistema;

● Com o tempo, um arquivo sequencial pode se fragmentar;

● Alguns sistemas possuem utilitários que podem desfragmentar o disco, aumentando o desempenho;

Buffers de escrita não voláteis● Dados se perdem da memória principal com a falta de 

energia;

● Desempenho dependem bastante da velocidade da escritas no disco;

● NVRAM, usada para agilizar as escritas no disco;

● Controladora escreve na NVRAM, que por sua vez notifica o sistema sobre a escrita;

● Escreve no disco quando não houver solitações ou quando o buffer da NVRAM encher;

Disco de log● Reduz as latências de escrita;

● Disco dedicado a escrever um log sequencial, quase eliminando o tempo de busca;

● Sistemas de arquivos journaling;

● Sistemas modernos implementam journaling, utilizando disco de log para escrever informações internas ao sistemas de arquivos;

● Sistemas de banco de dados implementam suas próprias formas de logging;

RAID● Array redundante de discos independentes;

● Grande quantidade de discos;

● Melhora na velocidade de leitura e escrita de dados quando discos operam em paralelo;

● Ganho na confiabilidade e armazemento dos dados;

● Utilizado também por apresentar maior facilidade de gerenciamento e operações;

RAID: Melhoria da confiabilidade por meio da redundância 

● Grande  probabilidade  de  um  disco  qualquer  em  um conjunto falhe;

● Solução: Introduzir a redundância;

● Técnica:  Duplicação  de  cada  disco,  técnica  simples, porém dispendiosa!

● Técnica conhecida  também em espelhamento, os dados são duplicados em discos diferentes, caso haja falha em um, os dados podem ser lidos a partir do outro disco;

RAID: Melhoria da confiabilidade por meio da redundância 

● Falta de energia elétrica e desastres naturais podem resultar em danos a dois discos ao mesmo tempo;

● Envelhecimento de discos aumentam a probabilidade de falha no segundo disco enquanto o primeiro disco ainda é reparado;

● Mesmo com essas adversidades esse sistema é mais seguro do que os sistemas de discos únicos;

RAID: Melhoria do desempenho por meio do paralelismo

● Melhoria na velocidade de leitura;

● Taxa de transferência de cada leitura é igual à de um sistema de disco único;

● Melhora da na taxa de transferência por espalhamento no nível de bit;

● Espalhamento no nível de blocos;

RAID: Melhoria do desempenho por meio do paralelismo

● Espelhamento no nível de bloco é a forma mais utilizada de espalhamento de dados;

Principais objetivos para o paralelismo:

–  Balancear a carga de vários acessos pequenos;

– Realizar grandes acessos em paralelo com o objetivo de reduzir o tempo de resposta a esses acessos;

Níveis de RAID● RAID nível 0: Oferece aos arrays de disco o 

espalhamento de blocos, sem qualquer redundância;

● RAID nível 1: Refere­se ao espelhamento de disco com espalhamento de bloco;

● RAID nível 2: Emprega bits de paridade para detecção e correção de erros;

● RAID nível 3: Organização com paridade intercalada por bit;

Níveis de RAID● RAID nível 4: Organização de paridade intercalada por 

bloco;

● RAID nível 5: Organização de paridade intercalada por bloco. Neste nível todos os discos podem satisfazer solicitações de leitura ao contrário do nível 4 em que o disco de paridade não pode satisfazer solicitações;

● RAID nível 6: Semelhante ao nível 5, armazenando informações redundantes para proteger contra multiplas falhas de disco;

Níveis de RAID

Escolha do nível de RAIDFatores  que  devem  ser  considerados  na  escolha  de  um 

nivel de RAID:

● Custo monetário dos requisitos extras de armazenamento em disco;

● Requisitos  de  desempenho  em  termos  do  número  de operações de E/S;

● Desempenho quando um disco tiver falhado;

● Desempenho durante a reconstrução;

Escolha do nível de RAID● Nível 0: Usado nas aplicações de alto desempenho onde 

a segurança dos dados não é crítica;

● Nível 1: Aplicações com requisitos de armazenamento moderados e altos requisitos de E/S. Neste nível a reconstrução é mais rápida;

● Níveis 2 e 4 foram substituídos pelos níveis 3 e 5 respectivamente;

Escolha do nível de RAID

● Nível 5: Oferece boas taxas de transferência para grandes transferências;

● Nível 6: Oferece melhor confiabilidade que o nível 5, porém não é aceito por muitas implementações de RAID;

Questões de hardware● RAID de software;

RAID de hardware:● Podem utilizar a RAM não volátil;

● Permite troca a quente – troca de discos sem o desligamento do sistema;

● Fonte de alimentação pode se tornar um único ponto de falha. Solução: Fontes de alimentação redundantes;

Armazenamento terciário

● Discos ópticos

● Fitas Magnéticas

Discos ópticos● Compact Disk

– Distribuição de software, dados de multimidia, etc.– Capacidade de 700 MB– Baixo custo;

● Digital Video Disk– Substituição do CD;– Capacidade variando de 4,7 GB a 17 GB;

● Formatos recentes:– HD­DVD e DVD Blu­ray;

Discos ópticos● CD e DVD apresentam tempo de busca muito maiores 

(100 milissegundos em média) do que unidades de discos magnéticos;

● CD e DVD apresentam taxas de transferência menor quando comparados aos discos magnéticos:– Leitura de CD: de 3 a 6 MB/s– Leitura de DVD: de 8 a 20 MB/s

● Discos ópticos para única escrita apresentam tempo de vida maior que os discos magnéticos;

● Jukeboxes;

Fitas magnéticas● Pode gravar grandes volumes de dados;

● Lentas quando comparadas aos discos magnéticos e ópticos;

● Limitadas ao acesso sequencial;

● Usadas principalmente para backup;

● É mantida em um spool e é bobinada e rebobinada;

Fitas magnéticas● Capacidade:

– Variando entre 10 a 330 GB dependendo do tipo de fita.

● Taxas de transferência de dados são da ordem de até dezenas de MB/s. 

● Possuem limite no número de vezes que podem ser lidas ou gravadas no modo seguro;

● Jukeboxes de fita, assim como os jukeboxes ópticos;

Acesso ao armazenamento● Bloco: Arquivo particionado em unidades de 

armazenamento de tamanho fixo;

● Principal objetivo: Minimizar o número de transferências de bloco entro o disco e a memória;

● Manter o máximo de blocos possível na memória principal.

Gerenciador de BufferPrograma

Gerenciador de Buffer

Bloco em memória Bloco no disco

Liberar espaço?

Requisição de dados

Salvar blocono disco

Recuperar blocopara memória

Escolherbloco Sim

Não

Políticas de substituição de Buffer

● Minimizar o acesso ao disco;

● Algoritmos de substituição?

– LRU (Last Recent Used – Menos usado recentemente)

– Lançar imediatamente

– MRU (Most Recent Used – Mais usado recentemente)

Políticas de substituição de Buffer●Exemplo:●Duas tabelas: cliente, credor. Em blocos diferentes

Políticas de substituição de Buffer

Credor 1Credor 1.nome­cliente == Cliente 1.nome­cliente

Credor 1.nome­cliente == Cliente 2.nome­cliente

Credor 1.nome­cliente == Cliente N.nome­cliente

.

.

.

Credor 2Credor 2.nome­cliente == Cliente 1.nome­cliente

Credor 2.nome­cliente == Cliente 2.nome­cliente...

Credor 2.nome­cliente == Cliente N.nome­cliente

Políticas de substituição de Buffer● Evitar remover partes acessadas com mais freqüência:

– Dicionário de dados;

– Índices de arquivos;

● Adaptar a situações:

– Concorrência

● Requisições ativas tem preferencia sobre adiadas.

Organização de arquivos

● Um arquivo é organizado logicamente como seqüência de registros;

● Registros são mapeados em blocos de disco;

● Exemplo de registro:type depósito = record

número_conta char(10);nome_agêcia char(22);saldo numeric(12,2);end

Registros de tamanho fixo

10 bytes 22 bytes 8 bytes

40 bytes

Registros de tamanho fixo

● Fáceis de implementar;

● Problemas:– Difícil excluir um registro;

– Registros em final do bloco podem se dividir em 2 blocos

(bloco 512 bytes = 12 registros + 32 bytes livres)

Registros de tamanho fixo

Trabalho desnecessário movendo registros

Pode gerar mais acesso ao disco.

Registros de tamanho fixo

Registros de tamanho variável● Podem surgir por causa:

– Armazenamento de vários tipos de registro em um arquivo;

– Registros com tamanho variável para um ou mais campos;

– Uso de arrays e multiconjuntos;

Registros de tamanho variável● Estrutura de página em slot:

– Adicionar cabeçalho no bloco1. Número de entradas de registro no cabeçalho2. Final do espaço livre no bloco3. Array com o local e o tamanho de cada registro 

­ Não é muito oneroso manter o bloco organizado, pois blocos temo tamanho típico de 4 kilobytes.­ A maioria dos banco de dados relacionais limitam o tamanho doregistro para não ser maior que o tamanho do bloco.

Organização de registro em arquivos● Relação é um conjunto de arquivos

● Maneiras de se organizar registros em arquivos:

– Organização de arquivos em Heap;● Qualquer lugar que tenha espaço

– Organização seqüencial em arquivos;● Ordenados de acordo com uma chave­de­busca

– Organização de arquivos com Hashing;

Organização seqüencial de arquivos

● Recuperação, ordenada, mais rápida (bom pra visualização);

● Difícil manter ordem seqüencial física, com inserção e exclusão;

Organização seqüencial de arquivo

● Exemplo inserção ­>

● Na falta de espaço no bloco usa­se o bloco de estouro;

● Reorganização, no nível físico, para manter a eficiência;

Dicionário de dados

● Armazena dados sobre  as relações, e outra informações:– Nome das relações;– Nome dos atributos das relações;– Domínio e tamanho dos atributos;– Restrições de integridade (restrições de chave)

● O sistema também armazena outros dados, como de usuários:– Nome dos usuários autorizados;– Informações de autorização;– Senhas e outras informações;

Dicionário de dados

● O banco de dados também pode armazenar dados estatísticos:– Numero de tuplas em cada relação;– Método de armazenamento (agrupado ou não 

agrupado);

● Informações sobre arquivos:– Se usa um único arquivo, sistema guarda os blocos 

que contem registros de cada relação;– Se usa vários arquivos, o nome de cada arquivo usado 

para guardar as relações é salvo;

Dicionário de dados

● Geralmente os dados sobre o banco de dados é armazenado no próprio banco de dados;

Resumo

● Existem  vários  tipos  de  armazenamento  de  dados  na maioria  dos  sistemas  de  computador.  Eles  são classificados  pela  velocidade,  custo  e  confiabilidade. Entre  os  meios  disponíveis  estão  cache,  memória principal,  memória  flash,  discos  magnéticos,  discos ópticos e fitas magnéticas.

Resumo

● Dois  fatores  determinam  a  confiabilidade  do  meio  de armazenamento:  se  uma  falha  de  energia  ou  falha  dos sistema causa perda de dados e qual é a probabilidade de falha física do dispositivo de armazenamento.

Resumo● Podemos  reduzir  a probabilidade de  falha  física  retendo 

várias copias dos dados. Para os discos, podemos usar o espelhamento.  Ou  então  podemos  usar  métodos  mais sofisticados com base em RAID. Espalhando dados pelos discos, esses métodos oferecem altas taxa de vazão em grandes acessos; introduzindo a redundância nos discos, eles  melhoram  muito  a  confiabilidade.  Várias organizações  RAID  diferentes  são  possíveis,  cada  uma com  diferentes  características  de  custo,  desempenho  e confiabilidade. RAID nível 1 e RAID nível 5 são os mais utilizados.

Resumo

● Uma forma de reduzir a quantidade de acessos ao disco é  manter  o  máximo  de  blocos  possível  na  memória principal. Como não é possível manter todos os blocos na memória  principal,  precisamos  gerenciar  a  alocação  do espaço  disponível  na  memória  principal  para  o armazenamento  de  blocos.  O  buffer  é  quela  parte  da memória principal disponível para o   armazenamento de cópias  de  blocos  de  disco.  O  subsistema  responsável pela  alocação  de  espaço  em  buffer  é  chamado  de gerenciador de buffer.

Resumo

● Podemos  organizar  um  arquivo  logicamente  como  uma seqüencial  de  registros  mapeados  nos  blocos  de  disco. Uma técnica para mapear o banco e dados em arquivos é usar vários arquivos e armazenar registros de apenas um tamanho  fixo  em  qualquer  arquivo.  Uma  alternativa  é estruturar  os  arquivos  de  modo  que  eles  possam acomodar  vários  tamanhos  para  os  registros.  O método de página em slot é muito usado para lidar com registros de tamanho variável dentro de um blco de disco.

Resumo

● Como os dados são transferidos entre o armazenamento de disco e a memória principal em unidade de bloco, vale a pena atribuir registros de arquivos aos blocos de modo que  um  único  bloco  contenha  registros  que  queremos com  apenas  uma  cesso  de  bloco,  economizamos acessos ao disco. Como acessos ao disco normalmente são o gargalo no desempenho de um sistema de banco de dados, a atribuição cuidadosa de registros aos blocos pode render importantes dividendos de desempenho.

Resumo

● O Dicionário de dados, também conhecido como catálogo do  sistema,  registra  metadados,  que  são  dados  sobre dados,  como  nomes  de  relação,  nomes  e  tipos  de atributo,  informação  de  armazenamento  restrições  de integridade e informações de usuário.

Bibliografia

● Silberchatz, A. ; Korth, H. F. ; Sudarshan, S ­ Sitemas de banco de dados