Download - Stockage des Données: Disques et Fichiers
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
Stockage des Données: Disques et Fichiers
Chapitre 9
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2
Objectifs
Hiérarchie de stockage Caractéristiques des disques et bandes RAID (lire dans le manuel !!!!) Gestion de l’espace disque Gestion des mémoires tampon Gestion des fichiers
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 3
Disques 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!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4
Pourquoi Ne Pas Tout Stocker en Mémoire Primaire?
Coûts trop élevés. A titre d’exemple, 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).
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5
Disques 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. D’où l’emplacement relatif des pages sur disque a
un impact majeur sur le performance des SGBDs!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6
Composantes d’un Disque
Plateaux
Les plateaux tournent (90tps).
Axe
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.
Tête
Mouvement du bras
Assemblage du bras
Une seule tête de lecture lit/écrit à la fois.
Pistes
Secteur
La taille de bloc est un multiple de la taille du secteur (qui est fixe).
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7
Accès à une Page de Disque Le temps d’accè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 d’attente 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 d’environ 1 à 20msec Le délai de rotation varie de 0 à 10msec Le taux de transfert est d’environ 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?
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8
Arrangements 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!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9
Gestion de l’Espace Disque La couche la plus basse du SGBD gère
l’espace sur disque. Les couches plus élevées font appel à
cette couche la plus basse afin de: Affecter/désaffecter de l’espace mémoire Lire/écrire sur une page
La requête pour une séquence de pages doit être satisfaite par l’allocation de pages de manière séquentielle sur le disque! La gestion des espaces libres est transparente aux couches supérieures du SGBD.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 10
Gestion des Mémoires Tampon
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 <frame#, pageid>.
DB
MEMOIRE PRINCIPALE
DISQUE
Page de disque
Cadre libre
Requête de page d’un niveau plus élevé
BUFFER POOL
Le choix d’un cadre à remplacer lorsque la réserve est pleine est régi par une police de remplacement
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 11
Procédure en Cas de Requête pour une Page Le manager maintient 2 variables:
pin_count: # d’utilisateurs 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!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 12
Police de Remplacement des Cadres
Un cadre est choisi pour remplacement en fonction d’une police de remplacement: LRU (‘’Least-recently-used’’), Clock, MRU, FIFO, LIFO,
etc. Ces polices peuvent avoir un grand impact sur le
# de I/O’s; elles dépendent du patron d’accès. Inondation séquentielle: Situation désastreuse
causée par le LRU + scannages séquentiels à répétition. # cadres < # pages dans le fichier: chaque page
requise cause un I/O. Le MRU se comporte mieux dans ce cas.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 13
SGBD vs. Système de Fichiers d’un SE
Puisque le SE gère l’espace 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 l’implémentation de CC & recouvrement),
Ajustage des polices de remplacement, et prélecture des pages en fonction des patrons d’accès aux données.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 14
Formats d’Enregistrements: Longueur Fixe
L’info 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 l’enregistrement.
Adresse de base (B)
L1 L2 L3 L4
F1 F2 F3 F4
Adresse = B+L1+L2
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 15
Formats d’Enregistrements: Longueur Variable Deux alternatives au moins existent (#
champs fixe):
Le second format offre un accès direct aux champs ainsi qu’un stockage efficient. Il implémente bien les ‘’nulls’’ (valeurs ‘’inconnues’’).
4 $ $ $ $
Compteur du# champs
Champs délimités par des symboles spéciaux
F1 F2 F3 F4
F1 F2 F3 F4
Liste de déplacements (‘’offsets’’) des champs
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 16
Format des Pages: Enreg.’s à Longueur Fixe
Record id = <page id, slot #>. Dans la première alternative, mouvoir les enreg.’s pour la gestion des espaces vides change les rids; n’est donc pas acceptable dans bien des cas !
Tranche 1Tranche 2
Tranche N
. . . . . .
N M10. . .
M ... 3 2 1PACKED UNPACKED, BITMAP
Tranche 1Tranche 2
Tranche N
Espacelibre
Tranche M
11
nombre d’enreg.’s
nombrede tranches
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 17
Format des Pages: Enreg.’s à Longueur Variable
On peut mouvoir les enreg.’s sur une page sans devoir changer les rids; d’où ce format est aussi attractif pour les enreg.’s à longueur fixe.
Page iRid = (i,N)
Rid = (i,2)
Rid = (i,1)
Pointeurvers le débutde l’espace libreREPERTOIRE DES TRANCHES
N . . . 2 120 16 24 N
# slots
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 18
Fichiers d’Enregistrements Les pages ou blocs sont la mesure de l’I/O, mais
les couches plus élevées du SGBD opèrent sur les enregistrements, et utilisent des fichiers d’enregistrements.
FICHIER: Collection de pages, chacune contenant une collection d’enregistrements. Doit supporter: insertion/effacement/modification des enregistrements lecture d’un enregistrement particulier (spécifié par son
record id -- rid) scannage de tous les enregistrements
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 19
Fichiers 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 d’un fichiers des espace libres dans les pages des enregistrements d’une page
Plusieurs alternatives existent à cette fin.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 20
Implémentation du ‘’Heap File’’ Comme Liste
Le SGBD retient l’adresse de l’endroit où est stockée la première page d’un fichier à un endroit bien spécifique sur disque.
Chaque page contient 2 pointeurs ainsi que des données.
Page de tête
Page de données
Page dedonnées
Page de données
Page de données
Page de données
Page dedonnées Pages avec
espace libre
Pages pleines
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 21
‘’Heap File’’ Utilisant une Page Répertoire
L’entrée d’une page peut inclure le nombre d’octets qui sont libres sur cette page.
Le répertoire est une collection de pages pouvant être organisée comme une liste. Beaucoup moins d’espace utilisé que dans la
première méthode!
Page de données
Page de données
Page dedonnées
Page de tête
REPERTOIRE
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 22
Catalogues 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 d’intégrité
Pour chaque vue: nom et définition
Statistiques, autorisations, taille du ‘’buffer pool’’, etc. Les catalogues sont stockés comme des relations!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 23
Attr_Cat(attr_name, rel_name, type, position)
attr_name rel_name type positionattr_name Attribute_Cat string 1rel_name Attribute_Cat string 2type Attribute_Cat string 3position Attribute_Cat integer 4sid Students string 1name Students string 2login Students string 3age Students integer 4gpa Students real 5fid Faculty string 1fname Faculty string 2sal Faculty real 3
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 24
Ré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
l’emplacement 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 qu’elle est relâchée
par son requérant. Une page est écrite sur disque si son cadre est choisi pour
remplacement. Le choix d’un cadre à remplacer se fait selon une police de
remplacement. Possibles prélectures.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 25
Résumé (Suite)
Un SGBD a besoin d’éléments introuvables dans beaucoup de Ses: forcer une page vers le disque, contrôler l’ordre 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 l’accè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.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 26
Résumé (Suite)
La couche de gestion des fichiers gère les pages des fichiers et supporte l’abstraction de collection d’enregistrements. 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.