• Nenhum resultado encontrado

Cap. 2 - Armazenamento de Dados: Discos e Ficheiros

N/A
N/A
Protected

Academic year: 2021

Share "Cap. 2 - Armazenamento de Dados: Discos e Ficheiros"

Copied!
34
0
0

Texto

(1)

Cap. 2 - Armazenamento de

Dados: Discos e Ficheiros

Abel J.P. Gomes

Bibliografia:

1. R. Ramakrishnan and J. Gehrke. “Database Management Systems”. Addison-Wesley, 2003 (cap.9).

“Yea, from the table of my memory I’ll wipe away all trivial fond records.”

(2)

2

1. Objectivos

 Que tipos de memória existem num computador?Que tipos de memória existem num computador?

 Quais são as características físicas dos discos rígidos eQuais são as características físicas dos discos rígidos e das cassetes (tapes), e como que afectam o design de das cassetes (tapes), e como que afectam o design de sistemas de bases de dados?

sistemas de bases de dados?

 O que são os sistemas RAID de memória de massa, eO que são os sistemas RAID de memória de massa, e quais são as suas vantagens?

quais são as suas vantagens?

 Como é que um DBMS regista o espaço em disco?Como é que um DBMS regista o espaço em disco? Como é que um DBMS acede e modifica os dados em Como é que um DBMS acede e modifica os dados em disco? Qual é o significado duma página enquanto disco? Qual é o significado duma página enquanto

unidade de armazenamento e transferência de dados? unidade de armazenamento e transferência de dados?

 Como é que um DBMS cria e mantém ficheiros deComo é que um DBMS cria e mantém ficheiros de registos (records)? Como é que os registos estão registos (records)? Como é que os registos estão organizados em páginas, e como estão as páginas organizados em páginas, e como estão as páginas organizadas dentro dum ficheiro?

(3)

2. Estrutura Simplificada dum DBMS

Tipicamente, um RDBMS

tem uma arquitectura

estratificada.

A figura ao lado não

mostra as componentes

de controlo de

concorrência e

recuperação a falhas.

Cada sistema tem as

suas próprias

particularidades.

O livro referido mostra

uma descrição mais

detalhada.

Como será com o MS

Optimização e Execução de Inquirições Operadores Relacionais Ficheiros e Métodos de Acesso Gestão de Buffers

Gestão de Espaço em Disco

(4)

4

3. Discos e Ficheiros

 Um DBMS salvaguarda

informação em discos.

 No mundo da electrónica, os discos são um anacronismo mecânico!

 Este facto tem grandes

implicações no design dum DBMS!

 READ: transferênca de dados do disco para a memória

principal (RAM).

 WRITE: transferência de dados da RAM para o disco.  Ambas são operações de

custo elevado em termos de tempo e espaço em memória, de modo que devem

planeadas cuidadosamente! Optimização e Execução de Inquirições Operadores Relacionais Ficheiros e Métodos de Acesso Gestão de Buffers

Gestão de Espaço em Disco

(5)

3.1 Porque é que não se salvaguarda tudo

em memória?

Custos muito elevados.

Para ~$1000, CityDesk Ltd. vender-nos-á ou ~10GB de RAM ou 1.5TB de disco.

Memória principal é volátil. Queremos que os dados

sejam salvaguardados entre operações de execução. (Obviamente!) Optimização e Execução de Inquirições Operadores Relacionais Ficheiros e Métodos de Acesso Gestão de Buffers

Gestão de Espaço em Disco

(6)

6

4. Hierarquia de Memórias

 Memória principal (RAM) para os dados actualmente em uso.

 Disco para a base de dados principal (memória

secundária).

 Cassetes (tapes) para arquivar versões antigas dos dados (memória

terciária). Registos Memória Cache Memória Principal Disco Electrónico Disco Magnético Disco Óptico

Cassete Magnética Maior,

Mais Lenta Mais Pequena,

(7)

5. Disco

 Dispositivo de memória secundária de eleição.  Principal vantagem relativamente às cassetes: acesso aleatório vs. sequencial.  Dados são armazenados e

devolvidos em unidades chamadas blocos de disco or páginas.

 Ao contrário da RAM, o tempo para devolver um bloco dum disco varia

com a sua localização em disco, o que tem grande impacto no desempenho

(8)

8

5.1 Componentes dum disco

 Os pratos giram (por exemplo, 120 rps).

 A agulha move-se para dentro ou para fora de modo a posicionar a cabeça sobre a pista desejada. As pistas debaixo das cabeças formam um cilindro (imaginário!).  Só uma cabeça lê/escreve em cada instante.  Tamanho do bloco é múltiplo do tamanho do sector (que é fixo).

Disco com 3 pratos e 6 cabeças R/W

sector pista circular

(9)

5.2 Acesso a uma página em disco

 Tempo de acesso (read/write) a um bloco em disco:  tempo de procura (tempo que leva a mover agulhas

para posicionar cabeça sobre a pista)

latência rotacional (tempo de espera que o bloco/disco rode sob a cabeça)

tempo de transferência (tempo real que leva a mover os dados para/de a superfície do disco)

 Tempo de procura e latência rotacional são dominantes no tempo de acesso total.

 tempo de procura varia entre 0.3 e 10msec  latência rotacional varia entre 0 e 4msec

 taxa de transferência anda à volta de.08msec per 8K block

 Chave para baixar o custo de I/O: reduzir os tempos de procura/rotação! Soluções de hardware vs.

(10)

10

5.3 Organização das páginas em disco

 O conceito de bloco `Next’ :

 blocos na mesma pista, seguidos por  blocos no mesmo cilindro, seguidos por  blocos no cilindro adjacente

 Blocos num ficheiro devem ser organizados sequencialmente no disco (via `next’), para minimizar a latência rotacional e de procura.  No caso dum escrutínio (scan) sequencial,

pré-pesquisa de várias páginas ao mesmo tempo é uma grande vitória!

(11)

6. Gestão de Espaço em Disco

 A camada mais baixa dum DBMS faz a gestão de espaço

em disco (quer use o sistema de ficheiros do sistema operativo ou não?).

 As camadas ou níveis mais elevados invocam esta camada

para:

 alocar/desalocar uma página  ler/escrever uma página

Melhor se um pedido de uma sequência de páginas é

satisfeita pelas páginas armazenadas sequencialmente no disco!

 Responsabilidade do gestor de espaço em disco.

 Níveis superiores não sabem como isto é feito, ou como o

espaço livre é gerido.

 Embora eles possam assumir acesso sequencial a ficheiros!

− Daí que o gestor de espaço em disco deva fazer um trabalho decente.

(12)

12

De Volta ao Contexto

Optimização e Execução de Inquirições Operadores Relacionais Ficheiros e Métodos de Acesso Gestão de Buffers

Gestão de Espaço em Disco

(13)

6. Gestão de Buffers num DBMS

 Dados têm de estar em RAM para que um DBMS opere sobre eles!  Gestor de buffers oculta o facto de que nem todos os dados estão em

RAM. Memória RAM

DB

Disco selecção da frame

ditada pela política de substituição BUFFER POOL free frame disk page

(14)

14

6.1 Quando uma página é pedida…

 Dados têm de estar em RAM para que o DBMS opere sobre eles!

 Tabela de informação da buffer pool contém: <frame#, pageid, pin_count, dirty>  Se página pedida não está na pool:

 Seleciona uma frame para substituição.

Só páginas não-afixadas (un-pinned) são candidatas!

 Se frame está “dirty”, escreva-a para o disco

 Ler página pedida do disco para a frame escolhida  Afixa (pin) página e retorna o seu endereço.

Se os pedidos podem ser previstos (p.ex. escrutínios sequenciais) várias páginas podem pré-pesquisadas duma vez só!

(15)

6.2 Algo mais sobre gestão de buffers…

 Solicitador duma página tem eventualmente de

desafixá-la (un-pinned), e indicar se a página foi modificada:

dirty bit é usado para isto.

 Uma página na pool pode ser pedida várias vezes,

 um pin count é usado.

 Para afixar (pin) uma página, pin_count++

Uma página é candidata a substituição sse pin count == 0

(“unpinned”)

Controlo e recuperação de disrupção (crash control and recovery) pode envolver I/O adicional quando uma frame

é escolhida para substituição.

(16)

16

7. Políticas de Substituição nos Buffers

 Uma frame é seleccionada para substituição com base numa política de substituição:

 Least recently used (LRU)  Most recently used (MRU)  Clock

 etc.

 A política pode ter um enorme impacto no # de I/O’s; depende do padrão de acesso.

(17)

7.1 Política de substituição LRU

 Least Recently Used (LRU)

 para cada página na buffer pool, registar o tempo da última des-afixação (unpinned)

 substituir a frame com o tempo mais antigo  política muito comum: intuitiva e simples

 Funciona bem para acessos repetidos a páginas

populares  Problemas?

Problema: Inundação Sequencial (sequential flooding)  LRU + varrimentos sequenciais repetidos.

 # buffer frames < # pages in file significa que cada pedido duma página provoca uma operação de I/O.  Ideia: MRU é melhor neste cenário?

(18)

18

7.2 Política de substituição ‘Clock’

 Uma aproximação à LRU

 Dispõe as frames num ciclo, armazena um reference bit per frame

 pode ser visto como um 2nd chance bit

Quando pin count se reduz a 0, activa reference bit  Quando substituição é necessária

do for each page in cycle {

if (pincount == 0 && ref bit is on) turn off ref bit;

else if (pincount == 0 && ref bit is off) choose this page for replacement; } until a page is chosen;

(19)

8. DBMS versus Sistema de Ficheiros do OS

 OS faz gestão de buffers & espaço em disco: porque é

que não deixamos o OS fazer estas tarefas?

 Algumas limitações, p.ex. a memória virtual do OS não tem uma gestão tão fina das páginas.

 Gestão de buffers num DBMS requer a capacidade para:

 afixar uma página na buffer pool, forçar uma

página para o disco & ordenar operações de escrita

(importante para implementar controlo e recuperação de disrupção)

 ajustar política de substituição, and pré-pesquisar páginas com base nos padrões de acesso em

(20)

20

De Volta ao Contexto

Optimização e Execução de Inquirições Operadores Relacionais Ficheiros e Métodos de Acesso Gestão de Buffers

Gestão de Espaço em Disco

(21)

9. Ficheiros de Registos (records)

 Blocos constituem a interface para I/O, mas…

 As camadas superiores do DBMS operam sobre registos e ficheiros de registos.

 FICHEIRO: Uma colecção de páginas, cada uma contendo uma colecção de registos. Deve suportar operações de:

 inserir/apagar/modificar registos

pesquisar um registo particular (através do record id)  escandir (scan) todos os registos (possivelmente com algumas condições sobre os registos a ser devolvidos)

(22)

22

9.1 Ficheiros (heap) não-ordenados

 A estrutura mais simples dum ficheiro é aquela que

contém os registos sem qualquer ordem em particular. Estes ficheiros são conhecidos por heap files.

 Quando o ficheiro se dilata ou contrai em tamanho, páginas em disco são alocadas e des-alocadas.

 Para suportar operações ao nível dos registos, temos de:

 registar as páginas num ficheiro  registar o espaço livre em páginas  registar os registos numa página

 Existem muitas alternativas para registar isto.  Vamos considerar 2

(23)

9.2 Heap file implementado como uma lista

O header page id e o heap file name têm de ser armazenados algures.

 “catálogo” da base de dados

 Cada página contém 2 ‘ponteiros’ + dados.

Header Page

Data

Page DataPage DataPage

Data

Page DataPage DataPage Pages with

Free Space Full Pages

(24)

24

9.3 Heap file implementado como uma

directoria de páginas

 O verbete (entry) para uma página pode incluir o número de bytes livres na página.

 A directoria é uma colecção de páginas; a

implementação por lista ligada é só uma alternativa.  Muita mais pequena que a lista ligada de todas as

páginas HF! Data Page 1 Data Page 2 Data Page N header page DIRECTORY

(25)

9.4 Índices (uma antevisão furtiva)

Um heap file permite-nos devolver registos:  pela especificação do rid, ou

 pelo escrutínio sequencial de todos os registos

 Às vezes, nós queremos registos que são devolvidos por especificação dos valores num ou mais campos, p.ex.

 Encontrar todos os estudantes no DI

 Encontrar todos os estudantes com nota superior a 10

 Índices são estruturas de ficheiros que nos permitem

efectuar inquirições baseadas-em-valor duma forma eficiente.

(26)

26

10. Formatos de Páginas

 Basicamente, temos 2 formatos:

 registos de tamanho fixo

(27)

10.1 Formato de registos com tamanho fixo

 Informação acerca dos tipos dos campos do registo é a mesma para todos os registos num ficheiro;

armazenada nos catálogos do sistema.Encontrar o i-ésimo campo faz-se por via

aritmética. base address (B) L1 L2 L3 L4 F1 F2 F3 F4 address = B+L1+L2 Fi = field i Li = length of field i

(28)

28

10.2 Formato de registos com tamanho

variável

 Dois formatos alternativos (#fields é fixo), como se ilustra em baixo.

A segunda alternativa oferece acesso directo ao i-ésimo campo (field), armazenamento eficiente de nulls (valor especial para don’t know); pequena sobrecarga de directorias. $ F3 F1 F2 $ $ F4 $ Fields delimited by special symbol $ F2 F3 F1 F4

(29)

10.3 Formato de Páginas:

registos de tamanho fixo

Record id = <page id, slot #>. Na primeira alternativa,

quando se apaga um registo, move-se o último registo para o slot entretanto vago, o que altera o seu rid; isto pode não ser aceitável para referências externas.

Slot 1 Slot 2 Slot N

. . .

. . .

N . . . 0 1M M ... 3 2 1

PACKED UNPACKED, BITMAP

Slot 1 Slot 2 Slot N Free Space Slot M 1 1 number

(30)

30

10.4 Formato de Páginas:

registos de tamanho variável

 Pode mover registos sem alterar o rid; assim,

também é atractivo para registos de tamanho fixo.

Page i rid = (i,N) rid = (i,2) Rid = (i,1) Pointer to start of free space SLOT DIRECTORY N . . . 2 1 20 16 24 N # slots FREE SPACE DATA AREA Offset of record from start of data area

(31)

11. Catálogos do Sistema

 Para cada relação:

 nome, localização do ficheiro, estrutura do ficheiro (p.ex. heap file)

 nome e tipo de cada atributo  nome de cada índice

 restrições de integridade  Para cada índice:

 estrutura (p.ex. B+ tree) e campos-chave de pesquisa  Para cada vista:

 nome e definição

 + estatística, autorização, tamanho da buffer pool, etc.

 Catálogos são eles próprios armazenados como

(32)

32

11.1 Exemplo

Attr_Cat(attr_name, rel_name, type, position)

attr_name rel_name type position attr_name Attribute_Cat string 1

rel_name Attribute_Cat string 2 type Attribute_Cat string 3 position Attribute_Cat integer 4

sid Students string 1

name Students string 2

login Students string 3

age Students integer 4

gpa Students real 5

fid Faculty string 1

fname Faculty string 2

(33)

Sumário

 Discos fornecem memória barata e não-volátil.

 Acesso aleatório, mas o custo depende da localização da página

em disco; importante para organizar dados sequencialmente e minimizar os atrasos de procura e rotação do disco.

 Gestor de buffers carrega páginas em RAM.

 Uma página fica em RAM até ser libertada pelo solicitador.  Escrita para disco quando uma frame é seleccionada para

substituição (o que acontece às vezes após solicitador libertar a página).

Escolha da frame baseia-se na política de substituição.Tenta pré-pesquisar várias páginas duma só vez.

 DBMS vs. Suporte de Ficheiros do OS

 DBMS precisa de funcionalidades que a maioria do OS’s não

oferecem, p.ex. forçar a ida duma página para disco, controlar a ordem de operações de escrita em disco, capacidade de controlar pré-pesquisa e política de substituição baseada em padrões de acesso previsíveis, etc.

(34)

34

Sumário

 Formato de registos de tamanho variável com

directoria de offsets de campos suporta acesso directo ao i-ésimo campo e valores nulos.

 Formato de entalhe (slotted) de páginas suporta registos de tamanho variável; este formato permite mover os registos na página.

 Camada de ficheiros toma nota das páginas num ficheiro e suporta abstracção duma colecção de registos.

 Páginas com espaço livre identificadas pela utilização duma lista ligada ou estrutura de directorias.

 Índices suportam devolução eficiente de registos com base em valores de alguns campos.

 Relações do catálogo armazenam informação acerca de relações, índices e vistas (Informação que é comum a todos os registos numa dada colecção.)

Referências

Documentos relacionados

nuestra especialidad por su especial proyección en el ámbito del procedimiento administrativo y el proceso contencioso administrativo, especialmente los alcances de la garantía

No decorrer da sessão, os formadores explicaram aos formandos como devem utilizar os diversos materiais presentes, tais como coletes salva-vidas, fatos térmicos, balsa,

O artigo 2, intitulado “Tecnologias de Informação e Comunicação (TIC): Estar fora da família, estando dentro de casa”, foi resultado da realização de uma pesquisa de

Even for the usual Becker-D¨ oring equations with input of monomers, the long time behaviour of solutions is not completely understood, [12], and so it seemed advisable to start with

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

O estudo múltiplo de casos foi aplicado para identificar as semelhanças e dissemelhanças na forma como as empresas relacionam seus modelos de negócios e suas

Embora acreditemos não ser esse o critério mais adequado para a seleção dos professores de Sociologia (ou de qualquer outra disciplina), cabe ressaltar que o Conselho