1 / 33

Gerenciamento do Disco Gerenciamento do Buffer

Gerenciamento do Disco Gerenciamento do Buffer. AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC. ARQUITETURA GERAL DE UM SGBD RELACIONAL. Hierarquia de Memória. Armazenamento Primário : cache e memória principal acesso rápido - opera dados Armazenamento Secundário

Télécharger la présentation

Gerenciamento do Disco Gerenciamento do Buffer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gerenciamento do DiscoGerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC

  2. ARQUITETURA GERAL DE UM SGBD RELACIONAL

  3. Hierarquia de Memória • Armazenamento Primário : • cache e memória principal • acesso rápido - opera dados • Armazenamento Secundário • Discos magnéticos • dados acessados com certa frequência • Armazenamento Terciário • fitas • dados que não acessados com frequência

  4. Vantagens e Desvantagens • Primários versus Secundários e Terciários • ST : dispositivos mais lentos • ST : mais baratos • ST : grande capacidade de armazenamento • ST : não volátil • Fitas versus Discos • Fita : armazenamento sequencial • Fita : acesso mais lento do que o disco 10/30/2014

  5. DB Interação Disco e Memória Principal: Esquema Geral Processador de Consultas Solicita dados para consulta (leitura) ou alterações (escritura) Informa modif Gerenciador de Buffer aloca Propaga modif Busca 10/30/2014

  6. Conteúdo da Aula • Gerenciador de Disco (Disk manager) • Gerenciador de Buffer (Buffer Manager) BCC- 2013-1 10/30/2014

  7. Perguntas a serem respondidas: Gerenciador de Disco • Como os dados são armazenados no disco • Como os dados são encontrados no disco Gerenciador de Buffer • Como são trazidos para memória principal • Como os dados são organizados em uma unidade (página) de dados. • Como os dados são localizados em uma unidade (página) de dados.

  8. Estrutura do Disco Braço do disco Cabeça Setor Trilha Bloco Prato Cilindro Rotação Movimento do braço 10/30/2014

  9. Discussão sobre as unidades • Setor: menor unidade. Configuração inerente ao disco, de fábrica • Bloco = conjunto de setores. Tamanho pode ser configurado quando o disco for inicializado. • Uma trilha é composta de um número INTEIRO de setores • Um bloco é composto de um número INTEIRO de setores. • Um bloco pode ficar parte em uma trilha e parte em outra, mas seu tamanho não pode ultrapassar o tamanho de uma trilha. • Exemplo: • Setor = 512 bytes • Trilha = 50 setores = 50*512 bytes = 25600 bytes • Podemos configurar um bloco como sendo igual a 4 setores. • Logo: tamanho de um bloco = 2048 bytes • Neste caso uma trilha contém 12 blocos e meio = 12*2048 + 1024 bytes = 25600 bytes

  10. 1 setor 1 setor 1/2 setor 1 bloco = 5,5 setores 1 bloco = 6 setores 1/2 bloco 1 bloco 1 trilha = 5,5 blocos 1 bloco 3 setores 1 trilha = 33 setores EXEMPLOS SIM NÃO ! 1/5 bloco= 1 bloco 1 trilha = 5 + 1/5 blocos 6/5 setores 1 bloco 1 trilha = 30 + 6/5 blocos

  11. Disco Memória Principal • Dados precisam estar na memória principal para serem operados. • Unidade de transferência de dados entre disco e memória principal = bloco • Se um único item num bloco é necessário, todo o bloco é transferido • Ler ou escrever um bloco = operação de I/O • Tempo de Acesso = busca + rotação + transferência 10/30/2014

  12. Tempos de Acesso • Procura (ou busca) • Tempo para mover as cabeças dos discos para a trilha na qual um bloco desejado está localizado. • Rotação • Tempo para que o bloco desejado se posicione sob a cabeça do disco = meia rotação em média; menor do que tempo de busca. • Transferência • Tempo para ler ou escrever no bloco = tempo de rotação do disco sobre o bloco. BCC- 2014-1 10/30/2014

  13. Exemplo • Disco Seagate Hawk 2XL • 2.15GB • Tempo de acesso médio =15msec • Tempo médio de procura = 9 msec • Tempo máximo de procura = 22msec • Tempo de latência rotacional = 5.55 msec • Passagem de uma trilha p/ outra = 1 msec • 512 bytes por setor, 4569 cilindros, 4 pratos duplos • Taxa de transferência = 5 MB/sec • Acesso a uma locação de memória < 5microsec BCC- 2014-1 10/30/2014

  14. Ordem de proximidade em um disco • No mesmo bloco • Na mesma trilha • No mesmo cilindro • Em cilindros adjacentes BCC- 2014-1 10/30/2014

  15. Tamanhos • Trilha: • tamanho é uma caracteristica do disco • Não pode ser alterado • Bloco: • Tamanho pode ser configurado quando o disco é inicializado • Deve ser um múltiplo do tamanho de 1 setor 10/30/2014

  16. Gerenciamento de espaço no disco • Unidade de dados = 1 página • 1 página = 1 bloco no disco • Páginas frequentemente acessadas são armazenadas sequencialmente. • Operação de I/O = leitura e escrita de uma página no disco 10/30/2014

  17. Gerenciador de Espaço em Disco • Quais blocos estão em uso ? • Quais dados estão em quais blocos ? • Inserções e supressões de dados = criação de “buracos”. • Blocos são alocados quando da criação de arquivos. • Gerenciamento de espaço livre • 1a alternativa • Lista de blocos livres. • Ponteiro para primeiro bloco livre é estocado num local do disco. • 2a alternativa • Array de 0 e 1 : se o bloco i está livre ou não 10/30/2014

  18. DB Buffer Pool = coleção de “frames” na memória principal Memória Principal Página Frame livre Disco 10/30/2014

  19. Gerenciador de Buffer • Testa se dado procurado está no buffer • Traz página do disco para a memória • Procura frame livre para alocar a página • Aciona algoritmo para liberar frame • Aloca página • É informado se modificação foi feita na página. • Caso o frame tiver que ser reutilizado, propaga modificação no disco. BCC- 2013-1 10/30/2014

  20. Algoritmo de Gerenciamento Frame no pool 3 0 Dirty bit : página suja ou não Pin-count = número de vezes que a página contida no frame foi solicitada para consultas ou modificações mas não foi liberada ainda. Inicialmente : Dirtybit := 0 Pin-count := 0 10/30/2014

  21. Algoritmo de Gerenciamento de Buffer Quando o processador de consultas aciona o Buffer Manager para alocar uma página na memória principal: • Testa se buffer pool contém a página desejada e incrementa o pin-count do frame onde a página está contida • Se não : procura frame com pin-count = 0 • Frame com pin-count = 0 : frame está liberado por transações que o utilizavam – nenhuma transação está utilizando a página contida no frame. • Caso não encontre frame com pin-count = 0 • Espera até que as transações sendo executadas liberem páginas em uso. • Caso encontre diversos frames com pin-count = 0: utiliza politica de substituição para escolher qual frame será utilizado. BCC- 2013-1 10/30/2014

  22. Algoritmo de Gerenciamento de Buffer • Uma vez escolhido o frame: • Se dirty-bit = 0, escreve página nova no frame. • Se dirty-bit = 1: • escreve página do frame no disco • Escreve nova página no frame • Incrementa pin-count do frame (já que alguma transação solicitou a página) • Retorna o endereço (em memória principal) do frame contendo a página solicitada para o processador de consulta. • A cada vez que uma transação libera um frame o pin-count do frame é decrementado. 10/30/2014

  23. Políticas de Substituição de Páginas • Que frames com pin-count = 0 escolher para substituição ? • LRU : Least recently used • Lista de ponteiros para frames com pin-count = 0 • Ponteiros dos frames são adicionados no fim da lista • MRU : Most recently used • Lista de ponteiros para frames com pin-count = 0 • Ponteiros dos frames são adicionados no início da lista • Random 10/30/2014

  24. Lista de frames livres Frame_livres=[F1,F2,...,Fn] • Politica LRU • Frames livres são adicionados no final da lista • O primeiro frame livre F1 é o que foi liberado menos recentemente. • Politica MRU • Frames livres são adicionados no inicio da lista • O primeiro frame livre F1 é o que foi liberado mais recentemente.

  25. Um frame começa a ser usado… quando uma página é carregada na locação de memória correspondente ao frame. Assim: Suponha dois frames F1 e F2 com as seguintes ações ocorridas: • tempo 1: Página P1 é trazida do disco para o frame F1 • tempo 2: Página P2 é trazida do disco para o frame F2 • tempo 3: um registro é modificado no frame F1 • Qual o frame mais recente ? • O frame F2, já que tempo1 < tempo2 BCC- 2013-1

  26. Exercicio 1 – Aula 3: Considere a seguinte transação: Begin transaction • For i = 1,…, 100.000 • Leia registro r com r.ID = i • EndFor Commit transaction End transaction BCC- 2013-1

  27. Para esta transação, a liberação de um frame ocorre em 2 situações: • Supondo um protocolo de lock que libera o frame quando a transação encerrou suas ações nos dados contido no frame: neste caso o frame é automaticamente liberado, assim que todos os registros contidos no frame tiverem sido lidos. • Quando a transação necessitar do frame para carregar outros dados que não cabem na memória. Mesmo que não tenha terminado de ler todos os registros contidos no frame, este será liberado. BCC- 2013-1

  28. Exercicio 1(b) – AULA 2 Dados: Arquivo tem 100.000 registros, organizados sequencialmente por ordem dos identificadores dos registros. Cada página comporta no máximo 9091 registros Arquivo tem 11 páginas Logo: última página (P11) tem 9090 registros Pergunta: quantas vezes são carregadas cada página, supondo uma politica de substituição LRU ?

  29. Exemplo : LRU Arquivo Sequencial em DISCO Buffer Pool: 10 frames P1 P2 P3 P4 P5 1 2 3 4 5 P6 P7 P8 P9 P10 6 7 8 9 10 Lista de Frames Livres = [ F1, ...., F10] P11 F2 F3 F4 .... F10 F1 F3 F4 .... F10 F1 F2 E assim por diante até a pag. 10 ... F1 F2 .... F10

  30. Resposta do Ex. 1(b) : política LRU • Cada página é carregada uma única vez • Custo de I/O = 11= número de páginas do arquivo. BCC- 2013-1

  31. Exercicio 1(b) – AULA 2 Dados: Arquivo tem 100.000 registros, organizados sequencialmente por ordem dos identificadores dos registros. Cada página comporta no máximo 9091 registros Arquivo tem 11 páginas Logo: última página (P11) tem 9090 registros Pergunta: quantas vezes são carregadas cada página, supondo uma politica de substituição MRU ?

  32. Exemplo : MRU Arquivo Sequencial em DISCO Buffer Pool: 10 frames P1 P2 P3 P4 P5 1 2 3 4 5 P6 P7 P8 P9 P10 6 7 8 9 10 Lista de Frames Livres = [ F1, ...., F10] P11 F1 F2 F3 F4 .... F10 F1 F2 F3 F4 .... F10 E assim por diante até a pag. 10 ...

  33. Resposta do Ex. 1(b) : política MRU • P1, P2,…, P10 são carregadas 9091 vezes cada uma (= número de registros destas páginas). • P11 é carregada 9090 vezes (= número de registros de P11). • Custo de I/O = 100.000 BCC- 2013-1

More Related