• Nenhum resultado encontrado

Evaristo Wychoski Benfatti Fernando Nunes Bonifácio ARMAZENAMENTO EM DISCO, ESTRUTURAS BASICAS DE ARQUIVOS E HASHING

N/A
N/A
Protected

Academic year: 2021

Share "Evaristo Wychoski Benfatti Fernando Nunes Bonifácio ARMAZENAMENTO EM DISCO, ESTRUTURAS BASICAS DE ARQUIVOS E HASHING"

Copied!
61
0
0

Texto

(1)

ARMAZENAMENTO EM DISCO, ESTRUTURAS

BASICAS DE ARQUIVOS E HASHING

(2)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(3)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(4)

INTRODUÇÃO

(5)

CONTEÚDO

 Introdução

 Armazenamento de dados  Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(6)

ARMAZENAMENTO DE DADOS

Hierarquia de armazenamento

 Armazenamento primário

cache, memória principal

 Armazenamento secundário

(7)
(8)

ARMAZENAMENTO DE DADOS

Novas tecnologias DVDs e fitas jukebox

-provavelmente serão opções viáveis para o

uso de discos magnéticos

Discos magnéticos continuarão a ser a mídia

(9)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(10)

DISPOSITIVOS DE ARMAZENAMENTO

Memória RAM (Random Access Memory)

 Memória de acesso aleatório

 Velocidade de transferência centenas de vezes

superior à dos dispositivos de memória de massa

 Extremamente simples: um minúsculo capacitor,

que quando está carregado eletricamente

 Volátil

 Módulos de memória são dividido em linhas e

(11)
(12)

DISPOSITIVOS DE ARMAZENAMENTO

Memória cache

 Memórias não eram mais capazes de

acompanhar a velocidade dos processadores

 Tipo ultra-rápido de memória que serve para

armazenar os dados mais freqüentemente usados pelo processador

 Extremamente caro (chega a ser algumas

(13)

DISPOSITIVOS DE ARMAZENAMENTO

Armazenamento em disco

 São utilizados para armazenamento de grande

quantidade de dados

 Não voláteis.

 Na unidade de disco estão presentes: cabeçote

de leitura/escrita, braço mecânico, atuador e controladora de disco

(14)
(15)

DISPOSITIVOS DE ARMAZENAMENTO

Armazenamento em disco

 Divisão fisica (não tem como mudar)

Trilhas Cilindros Setores

 Divisão lógica (formatação) Blocos

 Blocos são a unidade de transferência entre o

(16)
(17)

DISPOSITIVOS DE ARMAZENAMENTO

Armazenamento em disco

 Operação de leitura/escrita move o cabeçote do

disco para o bloco a ser transferido.

 Movimentos de rotação posicionam no setor

apropriado.

 Um endereço físico de bloco de disco consiste

de:

(18)

DISPOSITIVOS DE ARMAZENAMENTO

Armazenamento em disco

 Desempenho baseado na medida de três

tempos:

Tempo de pesquisa

Tempo de atraso rotacional (latência) Tempo de transferência de bloco

 Tempo de pesquisa e atraso rotacional são

(19)

DISPOSITIVOS DE ARMAZENAMENTO

Armazenamento em fitas magnéticas

 Dispositivos de armazenamento de acesso

seqüencial

 Os dados são armazenados em cartuchos de

fitas magnéticas

 Parecidas com as fitas de áudio e vídeo comuns  Cada byte disposto de forma transversal na fita  Acesso lento

(20)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(21)

BUFFERING DE BLOCOS

Diversos buffers podem ser reservados na

memória principal para acelerar a transferência

de dados

Enquanto um buffer estiver sendo lido ou escrito

a CPU pode processar os dados em outro.

Útil para processos executados

concorrentemente

Buffering duplo: permite que leituras e escritas

sejam realizadas de forma continua em blocos

consecutivos no disco, eliminando assim o

(22)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(23)

DISPOSIÇÃO DE REGISTROS DE ARQUIVOS EM

DISCO

Um arquivo é uma sequencia de registros

Registro é uma coleção de valores de dados

(itens de dados)

Dois tipos de registros: tamanho fixo e

tamanho variável

Arquivos com mesmo tipo de registro e de

(24)

DISPOSIÇÃO DE REGISTROS DE ARQUIVOS EM

DISCO

Um arquivo é uma sequencia de registros

Registro é uma coleção de valores de dados

(itens de dados)

Dois tipos de registros: tamanho fixo e tamanho

variável

Arquivos com mesmo tipo de registro e de

tamanho fixo facilitam a procura para SGBDs

Arquivos com registros de campos de tamanho

variável:

 Caracteres de separação ou campos de

(25)

DISPOSIÇÃO DE REGISTROS DE ARQUIVOS EM

DISCO

Registros são gravados em blocos

Fator de blocagem (bfr): número de registros

que podem ser armazenados em um bloco

(B/R).

Registros de arquivo podem ser spanned e

não-spanned (unspanned)

Spanned: um registro pode ser armazenado

em mais de um bloco

Não-spanned: registro não pode passar o

(26)

DISPOSIÇÃO DE REGISTROS DE ARQUIVOS EM

DISCO

Registro spanned são indicados para

arquivos de registros de tamanhos variável.

Registros não spanned são indicados para

arquivos de registros de tamanhos fixo.

Os blocos de disco que são alocados para

armazenar os registros de um arquivo

podem ser continuos, encadeados ou

indexados.

Um descritor de arquivo (cabeçalho de

arquivo) tem informções que descrevem o

(27)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(28)

As operações em um arquivo podem ser:

 operações de recuperação  operações de atualização

Operações mais comuns

 Reset (Reinicializar): Reposiciona o ponteiro de

arquivo, de um arquivo aberto, no seu inicio.

 Find ou Locate (Encontrar ou Localizar): Busca o

primeiro registro que satisfaça a condição de

pesquisa, transfere o bloco que tem a condição de pesquisa para um buffer de memória principal e faz o ponteiro de arquivo apontar para o registro no

buffer, tornando-o o registro atual.

(29)

 Read ou Get (Ler ou Obter): Copia o registro atual

do buffer para uma variável do programa de usuário.

 FindNext (Encontrar o próximo): procura o próximo

registro no arquivo que satisfaça a condição de pesquisa, transferindo o bloco que contém aquele registro para o buffer da memória principal.

 Delete (Excluir): Exclui o registro atual e no final

atualiza o arquivo de disco para refletir a exclusão.

 Modify (Modificar): Modifica alguns valores de

campos do registro atual e no final atualiza o arquivo no disco para refletir a modificação.

(30)

 Insert (Incluir): Acrescente um novo registro no

arquivo por meio da localização do bloco no qual o registro deve ser incluído, transferindo aquele bloco para o buffer da memória principal, escrevendo o registro no buffer e no final escrevendo o buffer no disco para refletir a modificação.

 Close (Fechar): Finaliza o acesso ao arquivo por

meio da liberação dos buffers e da execução de

quaisquer outras operações de limpeza necessárias.

(31)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)

 Arquivos Ordenados (Sorted Files)  Técnicas de Hashing

(32)

Também chamados de arquivos de pilha

Novos registros são inseridos no final do

arquivo

Para procurar um registro é necessário uma

procura linear através dos registros

Inserção de registros é bem eficiente

Ler os registros em ordem de acordo com

um campo em particular exige a ordenação

prévia dos registros do arquivo.

(33)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(34)

Também chamados de arquivo sequêncial

Registros de arquivos são mantidos

ordenados por de acordo com um valor um

certo campo

Inserção é custosa

É comum manter um arquivo de overflow

para agilizar as inserções

É possivel fazer uma procura binária através

do valor do campo de ordenação

(35)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(36)

A idéia do hashing é fornecer uma função

h(x), chamada de função hash que, aplicada

ao valor do campo de hash de um registro,

gere o endereço do bloco de disco no qual o

registro está armazenado.

(37)

Hashing interno é normalmente implementada

através de uma tabela hash por meio de um

vetor de registros

Suponha que o índice do vetor varie de 0 a M-1

 Uma função típica para isto seria a função:

 h(K) = K mod M

 este valor será então usado como endereço do

registro

Funções hash não garantem endereços únicos

Ocorrência de colisões

(38)

Métodos para tratar colisões:

 Open Addressing (Endereço aberto)  Encadeamento (Chaining)

 Hashing Múltiplo

(39)

 Chama-se hash externo quando se trata de

hashing para arquivos em disco

 O espaço de endereçamento alvo é constituído de

buckets,

 Buckets são grupos de blocos de disco

consecutivos.

 A função hash mapeia uma chave a um número de

bucket

 Uma tabela, mantida no cabeçalho do arquivo,

converte o número do bucket para o endereço de bloco de disco

(40)
(41)
(42)

 Os dois esquemas de hashing descritos

anteriormente são chamados de hashing estático, porque o número de buckets alocados é fixo. Isto representa um grande problema para arquivos

dinâmicos.

 Hashing para lidar com arquivos dinâmicos tiram a

vantagem de que a aplicação de uma função hashing gera um número inteiro não negativo, podendo ser representado como número binário

(43)

 Mantém um vetor de 2d endereços de buckets,

onde d é chamado de profundidade global, que funciona como um tipo de diretório

 Uma profundidade local d', armazenada em cada

bucket, especifica o número de bits no qual os conteúdos dos buckets são baseados

 O valor d pode ser aumentado ou diminuído uma

unidade por vez, dobrando ou dividindo ao meio a capacidade

(44)

 Uma inserção em um bloco que esteja cheio causa

a divisão do bloco em dois novos blocos. Os

registros são redistribuidos ao longo destes dois blocos.

 Precisa de dois acessos a blocos para localizar o

registro desejado

(45)

 Permite que um arquivo hash expanda ou diminua

seu número de buckets dinamicamente, sem necessitar de um diretório

 Funcionamento:

 Supomos que um arquivo comece com M

buckets numerados de 0 a M - 1 e use a função hash h(K) = K mod M

 Quando uma colisão levar a um registro de

overflow em qualquer bucket do arquivo, o primeiro bucket será dividido em dois buckets

(46)

 O novo bucket M será adicionado ao final do

arquivo.

 Os registros originalmente posicionados no

bucket 0 serão distribuídos entre os dois buckets segundo uma função hash diferente hi+1(K) = K mod 2M

 À medida que ocorre overflow, todos os buckets

originais do arquivo serão divididos, assim o

arquivo passa a possuir 2M buckets ao invés de M

(47)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

 Outras organizações primárias de arquivos  Acesso Paralelo em disco Usando RAID

(48)

 Nem sempre arquivos são compostos apenas de

registros do mesmo tipo

 Em arquivos mistos vários tipos de entidade estão

inter-relacionadas

 Esses relacionamentos podem ser representados

por campos de conexão

 SGBSs orientados a objeto, SGBDs hierárquicos

ou mesmo SGBDs em rede implementam relacionamentos entre registros por meio de relacionamentos físicos obtidos por meio de

adjacência física dos registros (clustering) ou por ponteiros físicos.

(49)

 Se o tamanho do registro quanto ao número de

registros em um arquivo for pequeno, alguns

SGBDs oferecem a opção de estrutura de dados de árvore B como organização primaria de

arquivos.

(50)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

 Outras organizações primárias de arquivos

(51)

ACESSO PARALELO EM DISCO

USANDO RAID

Tecnologia de armazenamento secundário deve

tomar medidas para manter o desempenho e a

confiabilidade de acordo com a tecnologia dos

processadores.

O maior avanço na tecnologia de

armazenamento secundário é representado

pelo desenvolvimento do RAID

O principal objetivo do RAID é acabar com a

grande diferença de performance dos discos

magnéticos comparado às tecnologias da

(52)

ACESSO PARALELO EM DISCO

USANDO RAID

A solução natural é usar um grande vetor de

pequenos discos independentes atuando

como um único disco lógico de maior

desempenho

Um conceito que usa o paralelismo para

melhorar o desempenho de dados é

chamado de striping

O striping de dados distribui os dados de

(53)

ACESSO PARALELO EM DISCO

USANDO RAID

 Foram definidas diferentes organizações de RAID

com base em diferentes combinações de dois fatores de granularidade de dados e padrão utilizado para

calcular a informação redundante

 RAID nível 0 (Striping ou Fracionamento):

 Dados são divididos em pequenos segmentos e

distribuídos entre os discos

 Não existe redundância

 A distribuição dos dados entre os discos proporciona

grande velocidade na gravação e leitura

 RAID nível 1 ("Mirroring" ou "Espelhamento"):

 Adiciona discos paralelos aos discos principais

 Os discos adicionados trabalham como uma cópia do

(54)

ACESSO PARALELO EM DISCO

USANDO RAID

 RAID nível 2:

 Adapta o mecanismo de detecção de falhas em discos rígidos (código Hamming)

 Todos os discos da matriz ficam sendo "monitorados" pelo mecanismo

 RAID nível 3:

 Os dados são divididos entre os discos da matriz, exceto um, que armazena informações de paridade

 Consegue oferecer altas taxas de transferência e confiabilidade das informações

 RAID nível 4:

 Divide os dados entre os discos, sendo que um é exclusivo para paridade

 A diferença com o nível 3, é que em caso de falha de um dos discos, os dados podem ser reconstruídos em tempo real

(55)

ACESSO PARALELO EM DISCO

USANDO RAID

RAID nível 5:

 Semelhante ao nível 4

 A paridade não fica destinada a um único disco,

mas a toda a matriz

 A gravação de dados é mais rápida

RAID nível 6:

 Também conhecido RAID 0 + 1

 Uma combinação dos níveis 0 (Striping) e 1

(Mirroring)

 Utiliza o bom rendimento do nível 0 com a

(56)
(57)

CONTEÚDO

 Introdução

 Armazenamento de dados

 Dispositivo de armazenamento  Buffering de blocos

 Disposição de registros de arquivos em disco  Operações em arquivos

 Arquivos de registros desordenados (Heap Files)  Arquivos Ordenados (Sorted Files)

 Técnicas de Hashing

(58)

 Para as atuais organizações direcionadas para a

Internet, tornou-se necessário mudar de uma

operação com centro de dados (data center) fixo e estático para uma infra-estrutura mais flexível e

dinâmica, dado seus requisitos de processamento de informação

 Grandes organizações estão adotando um conceito

chamado Área de Armazenamento em Redes (SAN -Storage Area Networks)

 Em uma SAN, periféricos de armazenamento on-line

são configurados como nós em uma rede de alta velocidade e podem ser conectados e

desconectados dos servidores de maneira bastante flexível

(59)

SAN permite que os sistemas de

armazenamento sejam posicionados a grandes

distancias dos servidores e proporcionam

diferentes opções de conectividade e de

desempenho

Algumas das alternativas de arquitetura para

SAN:

 conexões 'ponto-a-ponto' entre servidores e

sistemas de armazenamento por meio de canal de fibra óptica

 uso de um switch com canal de fibra para conectar

múltiplos sistemas RAID bibliotecas de fitas etc. a servidores

 uso de hubs e switches com canal de fibra para

conectar servidores e sistemas de armazenamento

(60)

As SANs têm crescido muito rapidamente,

mas ainda enfrentam muitos problemas, tais

como a combinação de opções de

armazenamento de diferentes fornecedores

e negociações envolvendo os padrões de

software e hardware de gerenciamento e

armazenamento

(61)

Referências

Documentos relacionados

A construção de uma composteira para manejo adequado dos resíduos sólidos provenientes desta atividade e a projeção de um sistema de coleta de água pluvial dos telhados das

O Fundo pretende atingir seu objetivo investindo no mínimo 67% de seu patrimônio em ações, bônus ou recibos de subscrição e certificados de depósito de ações, cotas dos Fundos

Os resultados obtidos nas experimentações são surpreendentemente semelhantes ao que se apresenta em cursos sobre o crescimento de espeleotemas em cavernas o que auxilia no

Pressionar o botão Menu do controle remoto para acessar o menu de serviços, depois ir com o direcional até o menu aplicativos, nele vão estar todos os aplicativos, verá o ícone

Este trabalho esta organizado da seguinte forma: no Capítulo 2 falamos sobre os dispositivos de armazenamento, sua hierarquia e como os bancos de dados são tratados neles;

8 Castors Roulettes de déplacement Ruedas de desplazamiento Transportrollen Rotelle di spostamento Transportwieltjes Rodinhas de deslocação Kółka do przemieszczania Görgők

Para tanto foram utilizados 60 ratos (Wistar) machos divididos em quatro grupos de 15 animais cada. Todos os animais foram submetidos à extração do incisivo central superior direito,

As sementes tem dormência imposta pelo tegumento e para a superação é necessário submetê-las à embebição em água (24 a 48 horas), escarificação mecânica ou