Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de...

26
Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC

Transcript of Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de...

Page 1: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

Gerenciamento do DiscoGerenciamento do Buffer

AULA 2

Profa. Sandra de Amo

Gerenciamento de Banco de Dados – BCC

Page 2: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

2

Perguntas a serem respondidas:

Como os dados são armazenados no disco

Como são trazidos para memória principal

Como os dados são encontrados nos arquivos

Como a informação é organizada em uma página de dados

Page 3: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 3

Conteúdo da Aula

Gerenciador de Disco (Disk manager)

Gerenciador de Buffer (Buffer Manager)

Page 4: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

4

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

Page 5: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 5

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

Page 6: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 6

Estrutura do Disco

Movimento do braço

SetorTrilha

Bloco

Prato

Cilindro

Rotação

Braço do disco Cabeça

Page 7: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

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

Page 8: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

1 bloco = 6 setores

1 setor

EXEMPLOS

1 bloco = 5,5 setores

1 setor 1/2 setor

NÃO !SIM

1 bloco

1 trilha = 5,5 blocos

1/2 bloco

1 bloco

1 trilha = 33 setores

3 setores

1 bloco

1 trilha = 5 + 1/5 blocos

1/5 bloco

1 bloco

1 trilha = 30 + 6/5 blocos

6/5 setores

Page 9: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 9

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

Page 10: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 10

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.

Page 11: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 11

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

Page 12: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 12

Ordem de proximidade em um disco

No mesmo bloco

Na mesma trilha

No mesmo cilindro

Em cilindros adjacentes

Page 13: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 13

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

Page 14: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 14

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

Page 15: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 15

Gerenciador de Espaço em Disco

Quais blocos estão em uso ? Que páginas estão em que blocos ? Inserções e supressões de páginas = criação de “buracos”. Páginas são alocadas 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

Page 16: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 16

Interação Disco e Memória Principal: Esquema Geral

DB

Processador de Consultas

Gerenciador de Buffer

Solicita dados para consulta (leitura) ou alterações (escritura)

Buscaaloca

Informa modif

Propaga modif

Page 17: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 17

Buffer Pool = coleção de páginas

Memória

Principal

Disco

Frame livre

Página

DB

Page 18: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 18

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.

Page 19: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 19

Algoritmo de Gerenciamento

3 0

Frame no pool

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

Page 20: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 20

Algoritmo de Gerenciamento de BufferQuando 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.

Page 21: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

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.

04/11/23 BCC- 2013-1 21

Page 22: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 BCC- 2013-1 22

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

Page 23: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

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.

Page 24: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

Exemplo : LRUBuffer Pool: 10 frames

1 2 3 4 5

6 7 8 9 10

P1 P2 P3 P4 P5

P6 P7 P8 P9 P10

P11

Arquivo Sequencial em DISCO

Lista de Frames Livres = [ F1, ...., F10]

F2 F3 F4 .... F10 F1

F3 F4 .... F10 F1 F2

F1 F2 .... F10

E assim por diante até a pag. 10 ...

Page 25: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

Exemplo : MRUBuffer Pool: 10 frames

1 2 3 4 5

6 7 8 9 10

P1 P2 P3 P4 P5

P6 P7 P8 P9 P10

P11

Arquivo Sequencial em DISCO

Lista de Frames Livres = [ F1, ...., F10]

F1 F2 F3 F4 .... F10

E assim por diante até a pag. 10 ...F1 F2 F3 F4 .... F10

Page 26: Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

04/11/23 26

Gerenciamento de Buffer versus SO

SGBD necessita maior controle quando uma página é escrita no disco – problemas de gerenciamento de transações.

SGBD pode estabelecer o padrão das páginas solicitadas por consultas SQL.

SGBD pode pré-carregar as páginas antes de serem solicitadas

Ler páginas em sequência de blocos é mais rápido do que ler as mesmas em diferentes momentos.

Leitura de sequências de páginas pode ser feita concorrentemente com cálculos na CPU

SGBD requer controle de recuperação de falhas – protocolo WAL.