Prévia do material em texto
Ramon Gomes Costa, Prof. D.Sc. Aula Expositiva Armazenamento de dadosArmazenamento de dados Banco de Dados II 2 Plano de Curso Armazenamento de dados Hierarquia de memória e dispositivos Paralelizando acesso a disco Organizações e níveis de RAID Exercícios. Banco de Dados II 3 Hierarquia de memória e dispositivos A coleção de dados que compõem um banco de dados deve ser armazenada fisicamente em algum meio de armazenamento. As mídias de armazenamento formam uma hierarquia de armazenamento: Armazenamento primário – mídias operadas diretamente pela CPU Acesso rápido aos dados Capacidade de armazenamento limitada Maior custo Armazenamento secundário – mídias não removíveis Capacidade maior Menor custo Acesso mais lento aos dados Armazenamento terciário – mídias removíveis Não processados diretamente pela CPU Banco de Dados II 4 Hierarquia de memória e dispositivos Banco de Dados II 5 Hierarquia de memória e dispositivos Armazenamento de bancos de dados: Dados persistentes – dados que precisam persistir por longos períodos de tempo; Dados transientes – persistem apenas por um tempo limitado, durante a execução de um programa. A maioria dos Storage Engines de SGBDs armazenam os dados de maneira permanente (ou persistentemente). Motivos: Bancos de dados muito grandes não cabem inteiramente na memória principal. Existência de dispositivos para armazenamento volátil e não-volátil (opção). Custo de armazenamento. Banco de Dados II 6 Hierarquia de memória e dispositivos Por conta destes fatores, SGBDs devem conter diversas opções para organizar os dados. O projeto físico envolve a escolha de técnicas para melhor organizar os dados. Os dados armazenados no disco são organizados como arquivos de registros. Registros devem ser localizados de modo eficiente, através de: Organizações de arquivo primário - determinam como os registros são fisicamente alocados e acessados. Ex.: Heap Arquivo sequencial Tabelas hash Organização secundária (estrutura de acesso auxiliar) – permite o acesso eficiente com base em campos alternativos, além das técnicas utilizadas nas organizações de arquivo primário. Ex.: Índices Banco de Dados II 7 Hierarquia de memória e dispositivos Disco Rígido (Hard Drive – HD) Características: - disco magnético - motor elétrico - braço mecânico Banco de Dados II 8 Hierarquia de memória e dispositivos Disco Rígido (Hard Drive – HD) Dados armazenados em um cilindro podem ser recuperados muito mais rapidamente do que se fossem distribuídos entre diferentes cilindros. Uma trilha pode ser dividida em blocos de disco (ou páginas) de mesmo tamanho e definida pelo sistema operacional durante a formatação do disco (não pode ser trocado dinamicamente). Blocos típicos: 0,5KB a 8KB. A transferência de dados entre a memória principal e o disco ocorre em unidades de blocos de disco. Banco de Dados II 9 Hierarquia de memória e dispositivos Disco Rígido (Hard Drive – HD) Tempo de busca: tempo necessário para posicionar mecanicamente a cabeça de leitura/gravação na trilha correta. Atraso rotacional (latência): tempo para o início do bloco desejado girar até a posição sob a cabeça de leitura/gravação. Tempo de transferência de bloco: tempo necessário para localizar e transferir um bloco. Tempo total = busca + latência + transferência de bloco Ex.: Tab. 17.1 (Elmasri e Navathe, 2011) Cheetah 15K.6 15000 rpm 450 GB Tempo de busca: ~4ms Latência: ~2ms Bitrate: ~2.2Mb/s Banco de Dados II 10 Hierarquia de memória e dispositivos Disco Rígido (Hard Drive – HD) Busca e latência >>>>> transferência de bloco A localização dos dados no disco é um gargalo principal nas aplicações de banco de dados. Colocar “informações relacionadas” em blocos contíguos é o objetivo básico de qualquer organização de armazenamento no disco. Banco de Dados II 11 Paralelizando acesso a disco Contexto: Taxa de crescimento (de acordo com Elmasri e Navathe, 2011): Capacidade da memória RAM: ~60% ao ano. Capacidade dos discos: ~50% ao ano. Transferência do disco: ~20% ao ano. Tempo de acesso a disco: ~10% ao ano. Solução: array de pequenos discos independentes atuando como um único disco lógico de maior desempenho. Data striping: particionamento dos dados. Mirroring (espelhamento): gravação redundante de dados. Checksum: usado para possibilitar a reconstrução de informação. Banco de Dados II 12 Organizações e níveis de RAID RAID: Redundant Array of Independent Disks. Objetivo: nivelar as diferentes taxas de melhoria de desempenho do disco sobre a memória principal. Banco de Dados II 13 Paralelizando acesso a disco RAID: Redundant Array of Independent Disks. Data striping: particionamento dos dados. Usa o paralelismo para melhorar o desempenho de acesso a disco. Distribui transparentemente os dados por vários discos, tornando um disco virtual grande e rápido. Melhora o desempenho geral de E/S, permitindo que várias E/S sejam atendidas em paralelo, oferecendo maior taxa de transferência. Utilizado para o balanceamento de carga entre os discos. Banco de Dados II 14 Organizações e níveis de RAID RAID nível 0 Usa striping de dados: distribui os dados uniformemente entre discos Tem um melhor tempo de gravação (atualização em paralelo, não replicadas / non- redundant) Desempenho de leitura pior (sobre RAID nível 1). Banco de Dados II 15 Paralelizando acesso a disco RAID: Redundant Array of Independent Disks. Mirroring (Espelhamento): gravação redundante de dados, tratados como único disco lógico. Vantagens: Utilizada para que falhas no disco possam ser toleradas Quando um disco falhar, outro é usado até que o primeiro seja reparado Aumenta a taxa em que a solicitação de leitura é tratada Desvantagens: Operações de E/S adicionais para gravação Computação extra para manter a redundância dos dados Necessidade de discos adicionais Banco de Dados II 16 Organizações e níveis de RAID RAID nível 1 Usa discos espelhados (mirrored) Melhor desempenho de leitura (sobre RAID nível 0) Banco de Dados II 17 Organizações e níveis de RAID RAID nível 2 Usa detecção e correção de erros (Memory-style ECC) Usa código de Hamming Obsoleto Banco de Dados II 18 Paralelizando acesso a disco RAID: Redundant Array of Independent Disks. Falha em disco: para um array de n discos, a probabilidade de falha é de n vezes. mtbf (Mean Time Between Failures): tempo médio entre falhas (chen et al., 1994). Seja mtbf = 200.000 h / disco (~ 23 anos), logo: se um banco de dados for distribuído por 100 discos, temos mtbf = 2000 h (~ 3 meses), ou seja, manter uma única cópia de dados neste array causará uma perda de confiabilidade significativa. Checksum: usado para possibilitar a reconstrução da informação perdida no caso de falhas no disco, através de técnicas para calcular a informação redundante pelo array de disco. Paridade Código de Hamming Banco de Dados II 19 Organizações e níveis de RAID RAID nível 3 Usa striping de dados Usa um único disco de paridade em nível de bit Utiliza o controlador de disco para descobrir qual disco falhou Banco de Dados II 20 Paralelizando acesso a disco RAID: Redundant Array of Independent Disks. Correção de erro através da paridade suponha três drives com os seguintes blocos: (101, 010, 011), calculamos XOR para o quarto drive, logo: XOR (101, 010, 011) = 100 → (101, 010,011, 100) falhas e correções: (101, 010, 011, 100) → XOR (100, 010, 011) = 101 (101, 010, 011, 100) → XOR (101, 100, 011) = 010 (101, 010, 011, 100) → XOR (101, 010, 100) = 011 Obs.: blocos de 512 Bytes = 4096 bits. 8 KB = 65536 bits Banco de Dados II 21 Organizações e níveis de RAID RAID nível 4 Usa striping de dados Usa um único disco de paridade em nível de bloco Utiliza o controlador de disco para descobrir qual disco falhou Banco de Dados II 22 Organizações e níveis de RAID RAID nível 5 Striping de dados Paridade em nível de bloco, distribuída entre os discos Banco de Dados II 23 Organizações e níveis de RAID Banco de Dados II 24 Organizações e níveis de RAID Outras organizações e níveis adicionais de RAID RAID 0+1 RAID 1+0 RAID 5E RAID 6 RAID 6E RAID 7, etc. Banco de Dados II 25 Ramon Gomes Costa, Prof. D.Sc. ramongomescosta@gmail.com Armazenamento de dadosArmazenamento de dados Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25