Cap. 2 - Armazenamento de Dados: Discos e Ficheiros



Documentos relacionados
Cap. 3 Organização de Ficheiros e Indexação

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende:

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Sistemas Operacionais: Sistema de Arquivos

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Sistemas Operativos I

Memórias Prof. Galvez Gonçalves

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Fundamentos de Arquivos e Armazenamento Secundário

Prof.: Clayton Maciel Costa

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

Conjunto organizado de informações da mesma natureza, agrupadas numa unidade independente de processamento informático

Programador/a de Informática

Sistemas Operacionais

Organização de Arquivos

Programação de Sistemas

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Gerência de Dispositivos

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Estruturas do Sistema de Computação

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

Introdução aos Sistemas Operativos

Sistemas Operacionais

Conceitos Básicos. Conceitos Básicos Memória

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

SGBD. Membros: Leandro Cardoso Aguiar. Murillo Parreira. Rafael Gondim Peixoto

Aprend.e Sistema integrado de formação e aprendizagem

Dispositivos de Armazenamento. Prof. Flávio Humberto Cabral Nunes

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

SW DE E/S INDEPENDENTE DE DISPOSITIVO

Bases de Dados. Parte IX: Organização Física dos Dados

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Sistemas Operativos I

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

ARQUITETURA DE COMPUTADORES

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 01. Cursos de Computação

O AMBIENTE DE TRABALHO DO WINDOWS

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Infraestrutura de Hardware. Memória Virtual

Noções de. Microsoft SQL Server. Microsoft SQL Server

MEMÓRIA. A memória do computador pode ser dividida em duas categorias:

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Administração e Optimização de BDs

DISCOS RÍGIDOS. O interior de um disco rígido

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

RAID Redundat Arrays of Inexpensive Disks

Memória cache. Prof. Francisco Adelton

Fundamentos de Sistemas Operacionais

Timer e serviços do Timer

FORMATAÇÃO DE DISCO SETORES

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Acronis Servidor de Licença. Manual do Utilizador

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Referencial do Módulo B

Capítulo 6 Sistemas de Arquivos

Sistemas de armazenamento

Introdução à Organização de Computadores Memória Secundária

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º

Escola Secundária de Emídio Navarro

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Disciplina: Introdução à Engenharia da Computação

Instalação do Sistema Operativo Windows XP

Sistema de Arquivos FAT

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Conceitos e Gerenciamento de Memória

Arquitetura de Sistemas Operacionais

Modelos. Comunicação com clientes

Organização e Arquitetura de Computadores

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Sistemas de Arquivos. Gerenciamento de Espaço em Disco

Equipa PTE. Janeiro 2012

Sistemas Operacionais

Prof. Daniel Gondim Informática

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

Prof. Sandrina Correia

Para criar a conta faça clique no separador. Abre um formulário com campos que terá que preencher. Basta ir seguindo

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

TRABALHO COM GRANDES MONTAGENS

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

2 Diagrama de Caso de Uso

Bases de Dados. Lab 1: Introdução ao ambiente

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Transcrição:

Cap. 2 - Armazenamento de Dados: Discos e Ficheiros Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet Abel J.P. Gomes Bibliografia: 1. R. Ramakrishnan and J. Gehrke. Database Management Systems. Addison-Wesley, 2003 (cap.9). 1

1. Objectivos Que tipos de memória existem num computador? Quais são as características físicas dos discos rígidos e das cassetes (tapes), e como que afectam o design de sistemas de bases de dados? O que são os sistemas RAID de memória de massa, e quais são as suas vantagens? Como é que um DBMS regista o espaço em disco? Como é que um DBMS acede e modifica os dados em disco? Qual é o significado duma página enquanto unidade de armazenamento e transferência de dados? Como é que um DBMS cria e mantém ficheiros de registos (records)? Como é que os registos estão organizados em páginas, e como estão as páginas organizadas dentro dum ficheiro? 2

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 SQL Server? 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 DB 3

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 DB 4

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 DB 5

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 Mais Pequena, Mais Rápida Disco Óptico Cassete Magnética Maior, Mais Lenta 6

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 dum DBMS. Hard diskinside Hard disk with 3 plates and 6 R/W heads 7

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). pista circular Disco com 3 pratos e 6 cabeças R/W sector 8

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. software? 9

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! 10

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. 11

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 DB 12

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 Pedidos de Páginas vindos de Níveis Superiores Disco BUFFER POOL disk page DB free frame selecção da frame ditada pela política de substituição 13

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ó! 14

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. protocolo Write-Ahead Log (WAL); detalhes mais tarde! 15

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. 16

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? 17

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 2 nd 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; 18

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 operações típicas de BD. 19

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 DB 20

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) 21

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 22

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. Data Page Data Page Data Page Full Pages Header Page Data Page Data Page Data Page Pages with Free Space 23

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! header page Data Page 1 Data Page 2 DIRECTORY Data Page N 24

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. 25

10. Formatos de Páginas Basicamente, temos 2 formatos: registos de tamanho fixo registos de tamanho variável 26

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. F1 F2 F3 F4 Fi = field i Li = length of field i L1 L2 L3 L4 base address (B) address = B+L1+L2 27

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. Fields delimited by special symbol $ F1 $ F2 $ F3 $ F4 $ Array of field offsets F1 F2 F3 F4 28

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 Free...... Space Slot 1 Slot 2 Slot N Slot M N 1... 0 1 1 M PACKED number of records M... 3 2 1 UNPACKED, BITMAP number of slots 29

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. DATA AREA rid = (i,n) Page i Offset of record from start of data area rid = (i,2) Rid = (i,1) FREE SPACE 20 16 24 N N... 2 1 # slots Pointer to start of free space SLOT DIRECTORY 30

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 relações! 31

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 sal Faculty real 3 32

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. 33

FIM DE CAPÍTULO 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.) 34