sgbd - instituto de informáticajcs/sgbd-cap11.pdf · níveis de raid raid nível 4: organização...
TRANSCRIPT
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.
● Destacamse 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;– Movese 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.
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 leituraescrita;
Discos magnéticos
● Placa possui forma circular plana, duas superfícies cobertas com material magnético;
● Cabeça de leituraescrita 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 leituraescrita;
● Cabeça de leituraescrita move pela placa para acessar diferentes trilhas;
● Um disco contém muitas placas:
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ãovolátil;– Disco de log.
Escalonamento
● Solicita blocos na ordem em que eles passarão pela cabeça de leituraescrita;
● 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: Referese 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;
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;
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:– HDDVD e DVD Bluray;
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
Credor 1Credor 1.nomecliente == Cliente 1.nomecliente
Credor 1.nomecliente == Cliente 2.nomecliente
Credor 1.nomecliente == Cliente N.nomecliente
.
.
.
Credor 2Credor 2.nomecliente == Cliente 1.nomecliente
Credor 2.nomecliente == Cliente 2.nomecliente...
Credor 2.nomecliente == Cliente N.nomecliente
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 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 chavedebusca
– 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 usase 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.