Survol du Stockage et de l - PowerPoint PPT Presentation

About This Presentation
Title:

Survol du Stockage et de l

Description:

Cependant la lecture de plusieurs pages cons cutives est moins co teuse que une lecture ... Assemblage du bras. Une seule t te de lecture lit/ crit la fois. ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 36
Provided by: RaghuRamak246
Category:

less

Transcript and Presenter's Notes

Title: Survol du Stockage et de l


1
Survol du Stockage et de lIndexage
  • Chapitres 9-12

2
Données sur Stockage Externe
  • Disques Peuvent puiser des pages au hasard à un
    coût fixe
  • Cependant la lecture de plusieurs pages
    consécutives est moins coûteuse que une lecture
    dans un ordre aléatoire
  • Bandes magnétiques Peuvent ne lire les pages que
    séquentiellement
  • Moins coûteux que les disques utilisées pour
    archivage
  • Gestion des fichiers Méthode pour arranger un
    fichier denregistrements sur stockage externe.
  • Fichiers de données structure pour entreposage
    des données dune organisation.
  • Identité denregistrement (Record id -- rid)
    suffisant pour localiser physiquement
    lenregistrement
  • Fichiers dindexes structures de données
    permettant de trouver les identités des
    enregistrements à partir des valeurs des clés de
    recherche

3
Organisation des Fichiers
  • Plusieurs alternatives existent, chacune étant
    idéale pour certaines situations, et pas pour
    dautres
  • Tas (Heap files) Adapté au scannage de tous
    les enregistrements.
  • Fichiers triés Adapté aux situations où les
    enregistrements doivent être puisés dans un
    certain ordre, ou lorsque une plage (range)
    denregistrements est requis.
  • Indexes Structures des données en forme darbres
    ou de hachage pour organiser les enregistrements.
  • Comme les fichiers triés, ils accélèrent les
    recherches pour un sous ensemble
    denregistrements sur base des valeurs des clés.
  • Les modifications sont plus rapides que dans les
    fichiers triés.

4
Composantes 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).

5
Accè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?

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

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

8
Gestion 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.

9
Procé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 selon une
    police (LRU, MRU, )
  • 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!

10
Formats 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.

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

12
Format 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 !

13
Format 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.

14
Fichiers 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

15
Implé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.

16
Heap 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!

17
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 dintégrité
  • Pour chaque vue
  • nom et définition
  • Statistiques, autorisations, taille du buffer
    pool, etc.
  • Les catalogues sont stockés comme des relations!

18
Indexes
  • Un index sur un fichier accélère les sélections
    sur les clés de recherche pour cet index.
  • Tout sous-ensemble des attributs dune relation
    peut servir de clé pour un index sur cette
    relation.
  • Une clé de recherche nest pas la même chose
    quune clé au sens densemble minimal
    dattributs qui identifie de manière unique un
    enregistrement de la relation.
  • Un index contient une collection dentrées des
    données et permet de puiser de manière efficiente
    toutes les entrées des données k en utilisant
    une valeur de clé k.

19
Entrées des Données k dans un Index
  • Trois alternatives une entrée des données peut
    être
  • un enregistrement de données avec une valeur de
    clé k
  • une paire ltk, ridgt
  • une paire ltk, liste de ridsgt
  • Le choix dune des alternatives dépend de la
    technique dindexage utilisée pour localiser les
    entrées des données ayant une valeur de clé k.
  • Exemples de techniques dindexage Arbres B,
    hachage
  • Typiquement, un index contient de linformation
    qui oriente les recherches vers les entrées des
    données désirées.

20
Entrées des Données k dans un Index (Suite)
Pages
internes
pages
feuilles
  • Les pages feuilles contiennent les entrées des
    données et sont chaînées.
  • Les pages internes contiennent les entrées de
    lindex et dirigent la
  • recherche.

21
Classification des Indexes
  • Hachage versus Arbres Selon que la structure de
    recherche est en forme de table à hachage ou en
    forme darbre.
  • Primaire vs. secondaire Selon que la clé de
    recherche contient la clé primaire ou pas, on a
    un index primaire ou secondaire.
  • Index unique La clé de recherche contient une
    candidate clé.
  • Groupé vs. nongroupé (Clustered
    vs.unclustered) Si lordre des
    enregistrements des données est le même que ou
    proche de celui des entrées des données, alors
    lindex est groupé sinon il est nongroupé.

22
Indexes à Arbres
  • Les indexes à arbres supportent à la fois la
    recherche des plages de valeurs (range
    search) ainsi que les recherches degalités
    (equality search).
  • ISAM structure statique B tree dynamique,
    sajuste gracieusement aux insertions et
    effacements.
  • Indexes à Hachage meilleurs pour les recherches
    dégalité ne peuvent supporter les recherches
    des valeurs des plages.

23
ISAM
Entrée dindex
P
K
P
K
P
P
K
m
0
1
2
1
m
2
  • Le fichier dindexes peut être très large. On
    peut cependant appliquer lidée de fichier
    dindexes de manière répétée!

Pages
internes
Pages
feuilles
Pages primaires
  • Les pages feuilles contiennent les entrées des
    données.

24
ISAM (Suite)
  • Création du fichier les feuilles (pages de
    données) sont allouées séquentiellement et triées
    selon la clé de recherche ensuite les pages de
    débordement sont crées.
  • Entrées dindexes ltvaleur de la clé, page idgt
    orientent la recherche vers les entrées de
    données se trouvant dans les pages feuilles.
  • Recherche Commence à la racine compare des
    clés pour aller vers la feuille appropriée. Coût
    log F N F entrées/pg index, N
    feuilles
  • Insertion Trouver la feuille à la quelle
    appartient lentrée de donnée et ly mettre.
  • Effacement Trouver et enlever lentrée de la
    feuille désaffecter une page de débordement vide.

Pages de données
Pages des indexes
Pages de débordement
  • Structure statique les changements naffectent
    que les feuilles.

25
Arbre B LIndex le plus Usuel
  • Insertion/effacement avec coût log F N Garde la
    hauteur balancée. (F fanout, N
    feuilles)
  • Taux doccupation minimum de 50(sauf pour la
    racine). Chaque nœud contient d lt m lt 2d
    entrées. Le paramètre d est appelé lordre de
    larbre.
  • Supporte efficacement les recherches des plages
    de valeurs et les recherches dégalités.

26
Exemple dArbre B
  • La recherche commence à la racine et les
    comparaisons des clés lorientent vers une page
    (similaire à la méthode ISAM).
  • Recherchez 5, 15, , toutes entrées de données
    gt 24 ...

Racine
17
24
30
13
39
3
5
19
20
22
24
27
38
2
7
14
16
29
33
34
27
Arbre B en Pratique
  • Ordre typique 100. Remplissage typique 67.
  • Sortance (fanout) moyenne 133
  • Capacités typiques
  • Hauteur 4 1334 312,900,700 enreg.s
  • Hauteur 3 1333 2,352,637 enreg.s
  • Les niveaux supérieurs de larbre peuvent souvent
    tenir en mémoire principale (buffer pool)
  • Niveau 1 1 page 8 Kbytes
  • Niveau 2 133 pages 1 Mbyte
  • Niveau 3 17,689 pages 133 MBytes

28
Insertion dune Entrée de Données
  • Trouver la feuille appropriée L.
  • Mettre lentrée de données dans L.
  • Si L a assez despace, fin!
  • Sinon, on doit partager L (en L et un nouveau
    nœud L2)
  • Redistribuer les entrées de manière égale, copier
    la clé du milieu vers le haut.
  • Insérer lentrée dindex pointant vers L2 dans le
    parent de L.
  • Ceci peut arriver de manière récursive
  • Pour partager nœud dindex, redistribuer les
    entrées de manière égale, mais pousser la clé du
    milieu vers le haut. (Contrastez ceci avec le
    partage des feuilles !!)
  • Les partages font croître larbre le partage de
    la racine augmente sa hauteur.
  • Croissance de larbre devient plus large ou d
    un niveau plus élevé à la racine.

29
Chargement en Vrac dun Arbre B
  • Si lon a une large collection denreg.s et que
    lon veut créer un indexe à arbre B avec une clé
    donnée, le faire enregistrement par
    enregistrement est très inefficace.
  • Solution Bulk Loading (chargement en vrac).
  • Initialisation
  • Trier toutes les entrées de données et les
    diviser en page
  • créer une page racine vide et
  • insérer un pointeur de la racine vers la 1ère
    page des données.

Pages dentrées de données triées non encore
mises dans larbre B
Racine
30
Chargement en Vrac (Suite)
  • Les entrées dindex pour les feuilles sont
    toujours créées dans la page dindex la plus à
    droite située juste au dessus du niveau des
    feuilles. Si cette dernière est pleine, elle est
    partagée. (Ce processus peut se répéter
    récursivement

Racine
10
20
Pages de données
35
23
12
6
à mettre sur larbre
3
6
9
10
11
12
13
23
31
36
38
41
44
4
20
22
35
Racine
20
10
35
6
23
12
38
3
6
9
10
11
12
13
23
31
36
38
41
44
4
20
22
35
31
Indexes à Hachage
  • Bon pour les sélections dégalité.
  • Lindex est une collection de compartiments
    (buckets). Bucket page domiciliaire plus zéro
    ou plus des pages de dépassement.
  • Fonction de hachage h h(r) bucket auquel
    lenregistrement r appartient. h utilise la clé
    de recherche de r.
  • Si lalternative 1 est utilisé, les buckets
    contiennent les enregistrements des données
    sinon, ils contiennent des pairs ltkey, ridgt ou
    ltkey, rid-listgt.

32
Hachage Statique
  • Pages primaires en nombre fixe et affectées
    séquentiellement jamais désaffectées pages de
    débordement si nécessaire.
  • h(k) mod M bucket où mettre lentrée des
    données dont la clé est k. (M de buckets)

0
h(key) mod N
2
key
h
N-1
Pages (bucket) primaires
Pages de débordement
33
Hachage Statique (Suite)
  • Les buckets contiennent les entrées des données.
  • La fonction de hachage utilise le champ de la clé
    de recherche de lenregistrement r. Les valeurs
    des clés doivent être distribuées sur une plage
    allant de 0 à M-1.
  • Les fonctions de hachage ont été abondamment
    étudiées.
  • Défaut possible développement de longues chaînes
    de débordement qui peuvent entraver la
    performance.
  • Hachage extensible et haching linéaire
    Techniques dynamiques pour résoudre ce problème.

34
Hachage Extensible
  • Situation un bucket (page primaire) se remplit.
    Pourrait-on réorganiser le fichier en doublant le
    de buckets?
  • Lire et écrire toutes les pages est très coûteux!
  • Solution Utiliser un répertoire de pointeurs
    vers les buckets doubler le de buckets en
    doublant la taille du répertoire, tout en ne
    partageant que les buckets en débordement!
  • Le répertoire est bien plus petit que le fichier
    lui-même, doù doubler le répertoire est moins
    coûteux. Plus besoin de pages de débordement!

35
Résumé
  • Gestion des fichiers Méthode pour arranger un
    fichier denregistrements sur stockage externe.
  • Fichiers de données structure pour entreposage
    des données sur disque.
  • Collection de pages stockées sur disque.
  • Indexes
  • Arbres ISAM, arbres B
  • ISAM est une structure statique
  • Seules les feuilles sont modifiées pages de
    débordement nécessaires
  • Défaut chaînes de débordements
  • Arbres B est une structure dynamique.
  • Insertion et effacement laissent larbre balancé
  • coût de log F N
  • Pas de chaînes de débordement
  • Hachage Hachage statique vs. extensible
Write a Comment
User Comments (0)
About PowerShow.com