Title: Stockage des Donn
1Stockage des Données Disques et Fichiers
2Objectifs
- Hiérarchie de stockage
- Caractéristiques des disques et bandes
- RAID (lire dans le manuel !!!!)
- Gestion de lespace disque
- Gestion des mémoires tampon
- Gestion des fichiers
3Disques et Fichiers
- Un SGBD stocke les informations sur des disques
durs. - Ceci a des implications majeures pour le design
du SGBD! - READ transfert des données du disque vers la
mémoire primaire (RAM). - WRITE transfert des données du RAM vers le
disque. - Les deux sont des opérations à coût élevé par
rapport aux opérations en mémoire, raison pour
laquelle elles doivent être soigneusement
planifiées!
4Pourquoi Ne Pas Tout Stocker en Mémoire Primaire?
- Coûts trop élevés. A titre dexemple, avec 80,
on peut acheter soit 256MB de RAM ou 40GB de
disque. - Caractère volatile de la mémoire principale. Nous
voulons sauver les données entre des exécutions
du système! - Hiérarchie de stockage typique
- Mémoire primaire (RAM) pour les données en usage.
- Disque pour la base de données principale
(stockage secondaire). - Bandes magnétiques pour archivage de vieilles
versions des données (stockage tertiaire).
5Disques
- Appareil de stockage secondaire le plus utilisé.
- Avantage principale sur les bandes magnétiques
accès aléatoire vs. séquentielle. - Données stockées et puisées en unités appelées
blocs de disque ou pages. - Contrairement au RAM, le temps de puiser une page
de disque varie selon son emplacement sur disque.
- Doù lemplacement relatif des pages sur disque a
un impact majeur sur le performance des SGBDs!
6Composantes dun Disque
Axe
Tête
- Les plateaux tournent (90tps).
- Le bras est déplacé (par un contrôleur) pour
positionner une tête de lecture/écriture sur la
piste désirée. Les pistes sous les têtes de
lecture forment un cylindre.
Secteur
Plateaux
- Une seule tête de lecture lit/écrit à la
fois.
- La taille de bloc est un multiple
de la taille du secteur (qui est fixe).
7Accès à une Page de Disque
- Le temps daccès à un bloc de disque est fait de
- seek time (déplacement du bras pour
positionner la tête de lecture/écriture sur une
piste) - rotational delay (temps dattente pour que le
bloc tourne sous la tête de lecture/écriture) - transfer time (temps de transfert des données
vers/de la surface du disque) - Le temps de recherche (seek time) et le délai
de rotation (rotational delay) dominent. - Le temps de recherche varie denviron 1 à 20msec
- Le délai de rotation varie de 0 à 10msec
- Le taux de transfert est denviron 1msec par page
de 4KB - Elément crucial des coûts I/O réduire les délais
de recherche et de rotation! Solutions hardware
vs. software?
8Arrangements des Pages sur Disque
- Concept de bloc suivant (Next)
- blocs sur la même piste, suivi des
- blocs sur le même cylindre, suivi des
- blocs sur le cylindre adjacent
- Les blocs dans un fichier devraient être
arrangés séquentiellement sur disque (suivant le
concept de suivant) afin de minimaliser le
délai de recherche et de rotation. - Pour un scannage séquentiel, une prélecture de
plusieurs pages à la fois est un grand gain!
9Gestion de lEspace Disque
- La couche la plus basse du SGBD gère lespace sur
disque. - Les couches plus élevées font appel à cette
couche la plus basse afin de - Affecter/désaffecter de lespace mémoire
- Lire/écrire sur une page
- La requête pour une séquence de pages doit être
satisfaite par lallocation de pages de manière
séquentielle sur le disque! La gestion des
espaces libres est transparente aux couches
supérieures du SGBD.
10Gestion des Mémoires Tampon
Requête de page dun niveau plus élevé
BUFFER POOL
Page de disque
Cadre libre
MEMOIRE PRINCIPALE
Le choix dun cadre à remplacer lorsque la
réserve est pleine est régi par une police de
remplacement
DISQUE
- Les données doivent être ramenées dans le RAM
afin que le SGBD opère sur elles! - Le système maintient une table de paires ltframe,
pageidgt.
11Procédure en Cas de Requête pour une Page
- Le manager maintient 2 variables
- pin_count dutilisateurs courants (ne
remplacer une page que si cette variable 0). - dirty page modifiée?
- Si la page requise est dans la réserve,
incrémenter le pin_count. - Sinon
- Choisir un cadre pour remplacement
- Si le cadre est sale (dirty), lécrire sur
disque - Lire la page requise dans le cadre choisi
- Incrémenter le pin_count de la page et retourner
son adresse.
- Si les requêtes peuvent être prédîtes (p.ex.
dans le - scannage séquentiel), plusieurs pages peuvent
être - prélues à la fois!
12Police de Remplacement des Cadres
- Un cadre est choisi pour remplacement en fonction
dune police de remplacement - LRU (Least-recently-used), Clock, MRU, FIFO,
LIFO, etc. - Ces polices peuvent avoir un grand impact sur le
de I/Os elles dépendent du patron daccès. - Inondation séquentielle Situation désastreuse
causée par le LRU scannages séquentiels à
répétition. - cadres lt pages dans le fichier chaque page
requise cause un I/O. Le MRU se comporte mieux
dans ce cas.
13SGBD vs. Système de Fichiers dun SE
- Puisque le SE gère lespace mémoire et le
disque, pourquoi ne pas laisser ces tâches au SE? - Les raisons suivantes militent en faveur du
non - Différences sur le support SE problèmes de
portabilité - Limitations inhérentes des SEs p.ex. les
fichiers ne peuvent sétendre sur plusieurs
disques - La gestion de mémoire en SGBDs requiert la
capacité de - pinning des pages en réserve forcer une page
vers le disque (important pour limplémentation
de CC recouvrement), - Ajustage des polices de remplacement, et
prélecture des pages en fonction des patrons
daccès aux données.
14Formats dEnregistrements Longueur Fixe
F1
F2
F3
F4
L1
L2
L3
L4
Adresse de base (B)
Adresse BL1L2
- Linfo sur les champs des enregistrements est la
même pour tout le fichier et est stockée dans les
catalogues du système. - Trouver le i-ème champ requiert un scannage de
tout lenregistrement.
15Formats dEnregistrements Longueur Variable
- Deux alternatives au moins existent ( champs
fixe)
F1 F2 F3
F4
Champs délimités par des symboles spéciaux
Compteur du champs
F1 F2 F3 F4
Liste de déplacements (offsets) des champs
- Le second format offre un accès direct aux
champs - ainsi quun stockage efficient. Il implémente
bien les nulls - (valeurs inconnues).
16Format des Pages Enreg.s à Longueur Fixe
Tranche 1
Tranche 1
Tranche 2
Tranche 2
Espace libre
. . .
. . .
Tranche N
Tranche N
Tranche M
N
M
1
0
. . .
1
1
M ... 3 2 1
nombre denreg.s
nombre de tranches
PACKED
UNPACKED, BITMAP
- Record id ltpage id, slot gt. Dans la première
alternative, mouvoir les enreg.s pour la gestion
des espaces vides change les rids nest donc pas
acceptable dans bien des cas !
17Format des Pages Enreg.s à Longueur Variable
Rid (i,N)
Page i
Rid (i,2)
Rid (i,1)
N
20
16
24
Pointeur vers le début de lespace libre
N . . . 2 1
slots
REPERTOIRE DES TRANCHES
- On peut mouvoir les enreg.s sur une page sans
devoir changer les rids doù ce format est aussi
attractif pour les enreg.s à longueur fixe.
18Fichiers dEnregistrements
- Les pages ou blocs sont la mesure de lI/O, mais
les couches plus élevées du SGBD opèrent sur les
enregistrements, et utilisent des fichiers
denregistrements. - FICHIER Collection de pages, chacune contenant
une collection denregistrements. Doit
supporter - insertion/effacement/modification des
enregistrements - lecture dun enregistrement particulier (spécifié
par son record id -- rid) - scannage de tous les enregistrements
19Fichiers Nonordonnés (Heap Files)
- Structure la plus simple pour les fichiers ne
contient les enregistrements dans aucun ordre
spécial. - Au fur et à mesure que les fichiers augmentent et
diminuent de tailles, les pages sont affectées ou
désaffectées. - Pour supporter des opérations sur les
enregistrements, on doit garder les traces - des pages dun fichiers
- des espace libres dans les pages
- des enregistrements dune page
- Plusieurs alternatives existent à cette fin.
20Implémentation du Heap File Comme Liste
Page de données
Page de données
Page de données
Pages pleines
Page de tête
Page de données
Page de données
Page de données
Pages avec espace libre
- Le SGBD retient ladresse de lendroit où est
stockée la première page dun fichier à un
endroit bien spécifique sur disque. - Chaque page contient 2 pointeurs ainsi que des
données.
21Heap File Utilisant une Page Répertoire
- Lentrée dune page peut inclure le nombre
doctets qui sont libres sur cette page. - Le répertoire est une collection de pages pouvant
être organisée comme une liste. - Beaucoup moins despace utilisé que dans la
première méthode!
22Catalogues du Système
- Pour chaque index
- Indique la structure (p.ex. B) et les champs de
la clé de recherche - Pour chaque relation
- nom, nom de fichier, structure du fichier (p.ex.,
Heap file) - nom et type de chaque attribut
- nom de chaque index sur la relation
- contraintes dintégrité
- Pour chaque vue
- nom et définition
- Statistiques, autorisations, taille du buffer
pool, etc.
- Les catalogues sont stockés comme des relations!
23Attr_Cat(attr_name, rel_name, type, position)
24Résumé
- Les disques fournissent un stockage bon marché et
non-volatile. - Accès aléatoire, mais le coût des opérations
dépend de lemplacement des données sur le
disque un agencement séquentielle des donnes
minimalise les délais de recherche et de
rotation. - Le buffer manager amène les pages dans le
RAM. - Une page reste dans le RAM jusquà ce quelle est
relâchée par son requérant. - Une page est écrite sur disque si son cadre est
choisi pour remplacement. - Le choix dun cadre à remplacer se fait selon une
police de remplacement. - Possibles prélectures.
25 Résumé (Suite)
- Un SGBD a besoin déléments introuvables dans
beaucoup de Ses forcer une page vers le disque,
contrôler lordre décriture des pages,
éparpiller un fichier sur plusieurs disques, etc. - Les enregistrements à longueur variable avec un
répertoire de offsets offrent un support pour
laccès direct aux champs et pour les valeurs
nulles. - Le format UNPACKED BITMAP supporte les
enregistrements à longueur variable et permet de
déplacer les enregistrements sur une page.
26Résumé (Suite)
- La couche de gestion des fichiers gère les pages
des fichiers et supporte labstraction de
collection denregistrements. - Les pages avec espace libre sont identifiées par
une liste chaînée ou un répertoire. - Les relations en catalogue stockent l
information sur les relations, les indexes et les
vues.