Stockage des Données: Disques et Fichiers

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Structures de données avancées : Introduction
Chap. 4 Recherche en Table
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Gestion de FICHIERS.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Les éléments de mémorisation
Systèmes d’Exploitation
Systèmes Experts implémentation en Prolog
Chap. 1 Structures séquentielles : listes linéaires
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
Structures de données linéaires
Récursivité.
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
II. Chaînage, SDD séquentielles
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Stockage des Données: Disques et Fichiers Chapitre 9.
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Atomicité Transactions Atomiques Recouvrement à Base de Journal
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
1.2 COMPOSANTES DES VECTEURS
II. Chaînage, SDD séquentielles
Configuration de Windows Server 2008 Active Directory
Gestion de Fichiers Arbres B.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
Etude de cas : buffer clavier
CHAPITRE 4 LE POTENTIEL ÉLECTRIQUE.
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-10541
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
Hiérarchie de la mémoire
Stockage Secondaire: Disques
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
1 Survol du Stockage et de lIndexage Chapitre 8. 2 Objectifs Stockage persistant Organisation des fichiers Fichiers de données Fichiers dindexes Operations.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
1 Survol du Stockage et de lIndexage Chapitres 9-12.
Indexes à Arbres et Indexes à Hachage
Institut Supérieur des Etudes Technologiques de Djerba Exposé du Traitement de Données Réalisé par: Khalifa Marwa Magroun Amira Jawadi Souad L2MDW.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Stockage des Données: Disques et Fichiers Chapitre 9.
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Atelier de formation : MAT optimisation II (les graphes).
Faculté des sciences économique et gestion de Nabeul
Gérer la sécurité des mots de passe et les ressources
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
GF-11: Tri Interne Efficace et Tri Externe
Structure de stockage et relations
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
GF-4: Storage Secondaire: Disques
1 Survol du Stockage et de l’Indexage Chapitre 8.
Système de gestion fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Architecture et technologie des ordinateurs II
Module 3 : Gestion des fichiers de base de données
CPI/BTS 1 Algorithmique & Programmation Les Fichiers Algo – Prog CPI/BTS1 – M. Dravet – 21/04/2004 Dernière modification: 21/04/2004.
INFO 2014 Fichiers et base de données Philippe Fournier-Viger Département d’informatique, U.de Moncton Bureau D216,
Memoire.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Stockage des Données: Disques et Fichiers Chapitre 9 The slides for this text are organized into chapters. This lecture covers Chapter 7. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: Schema Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics 1

Objectifs Hiérarchie des mémoires (stockage) Caractéristiques des disques et bandes RAID Gestion de l’espace disque Gestion des mémoires tampon Gestion des fichiers

Hiérarchie des Mémoires Mémoire primaire (RAM): contient les données en usage. Mémoire secondaire (disque magnétique): contient la base de données principale. Mémoire tertiaire (bandes magnétiques): contient les archives. La mémoire primaire Coûts trop élevés: à titre d’exemple, avec $80, on peut acheter soit 2GB de RAM ou 200GB de disque. Volatile: ne peut sauver les données entre des exécutions du SGBD. Mémoires principale et secondaire interagissent: READ: transfert des données du disque vers la mémoire primaire. WRITE: transfert des données du RAM vers le disque. Les deux opérations coûtent plus que les opérations en mémoire, raison pour laquelle elles doivent être soigneusement planifiées!

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

Composantes d’un Disque Axe Pistes Les plateaux tournent (90tps). Tête 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 Mouvement du bras Plateaux Une seule tête de lecture lit/écrit à la fois. Assemblage du bras Un bloc est une collection de secteurs. La taille de bloc est un multiple de la taille du secteur (qui est fixe). 21

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

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. Le concept de « suivant » facilite le scannage séquentiel (prélecture de plusieurs pages à la fois). 23

RAID (‘Redundant Arrays of Independent Disks’) Banc de disques: Arrangement de plusieurs disques donnant l’illusion d’un seul large disque. Buts: Augmenter la performance et la fiabilité du stockage secondaire. Deux techniques principales: Répartition des données (‘’Data striping’’): les données sont divisées en partitions réparties sur plusieurs disques. Redondance: Utilisation de plus de disques => plus de failles. L’information redondante permet de reconstruire les données en cas de faillite d’un disque. La répartition des données augmente la performance et la redondance améliore la fiabilité.

RAID: Répartition des Données vs. Redondance Répartition des données: les données sont divisées en partitions; la taille d’une partition est appelée unité de partition. Les partitions sont réparties sur plusieurs disques: S’il y a D disques, une partition i est stockée sur le disque i mod D (algorithme ’’round-robin’’). Redondance: Utilisation de plus de disques => plus de failles. L’information redondante permet de reconstruire les données en cas de faillite d’un disque: Utiliser tous les disques (« striping ») vs. N’utiliser que des ‘’check disks’’ pour l’info redondante. L’info redondante est calculée en utilisant un schème de parité. La parité est utilisée pour reconstruire la valeur des bits des disques corrompus. Plusieurs méthodes d’organisation appelées ‘niveaux de RAID’ existent dans l’industrie: elles balancent répartition et redondance.

Niveaux de RAID Niveau 0: Striping; aucune redondance Niveau 1: Miroitement (deux copies identiques) Chaque disque a une image miroir. Lectures parallèles; utilisation de deux disques pour l’écriture. Taux de transfert maximum = taux de transfert d’un disque. Niveau 0+1: Striping et miroitement Lectures parallèles; implication de deux disques pour l’écriture. Le taux de transfert maximum bénéficie de la somme des bandes passantes (‘’bandwidth’’) de tous les disques impliqués.

Niveaux de RAID (Suite) Niveau 2: Code de correction d’erreurs Unité de partition: un bit. Utilisation de la parité (Hamming code) qui est stocké sur des disques de surveillance (‘’check disk’’). Le # de check disks croit logarithmiquement par rapport à celui des disques de données. Lecture parallèle possible pour de petites requêtes; les larges requêtes peuvent utiliser toute la bande passante des disque impliqués. Les écritures impliquent le bloc modifié ainsi que le check disk. Niveau 3: ‘’Bit-Interleaved Parity’’ Unité de partition: un bit. Un seul check disk stockant tout juste la parité (sans tout le Hamming code !) est utilisé. Les performances sont similaires à celles du niveau 2.

Niveaux de RAID (Suite) Niveau 4: ‘’Block-Interleaved Parity’’ Unité de partition: un bloc de disque. Un seul check disk. Ressemble au niveau 3, sauf que l’unité de partition change du bit au bloc. Lecture parallèle possible pour de petites requêtes; les larges requêtes peuvent utiliser toute la bande passante de tous les disques à la fois. Les écritures impliquent les blocs modifiés ainsi que le check disk. Niveau 5: ‘’Block-Interleaved Distributed Parity’’ Similaire au niveau 4 sauf que les blocs de parités sont distribués sur tous les disques (au lieu de les stocker sur un seul check disk).

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

Gestion des Mémoires Tampon Requête de page d’un niveau plus élevé BUFFER POOL Page de disque Cadre libre MEMOIRE PRINCIPALE DISQUE Le choix d’un cadre à remplacer lorsque la réserve est pleine est régi par une police de remplacement DB 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>. 4

Procédure en Cas de Requête pour une Page Le gestionnaire des tampons maintient 2 variables: pin_count: # d’utilisateurs courants (ne remplacer une page que si pin_count = 0). dirty: page modifiée? Si la page requise est dans la réserve, l’utiliser et 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 (« pinning ») de la page et retourner son adresse. 5

Police de Remplacement des Cadres Un cadre est choisi pour remplacement en fonction d’une police de remplacement: LRU (‘’Least-recently-used’’), Clock, MRU, 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. 7

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: Procéder au ‘’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. 8

Formats d’Enregistrements: Longueur Fixe Adresse de base (B) Adresse = B+L1+L2 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. L’arithmétique des adresses est simple. 9

Formats d’Enregistrements: Longueur Variable Deux alternatives au moins existent (# champs fixe): F1 F2 F3 F4 4 $ 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 qu’un stockage efficient. 10

Format des Pages: Enreg.’s à Longueur Fixe Tranche 1 Tranche 1 Tranche 2 Tranche 2 . . . Espace libre . . . Tranche N Tranche N Tranche M N 1 . . . 1 1 M nombre d’enreg.’s M ... 3 2 1 nombre de tranches PACKED UNPACKED, BITMAP 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 ! 11

Format des Pages: Enreg.’s à Longueur Variable Rid = (i,N) Page i Rid = (i,2) Rid = (i,1) 20 16 24 N Pointeur vers le début de l’espace libre N . . . 2 1 # slots REPERTOIRE DES TRANCHES 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. 12

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) scannage de tous les enregistrements 13

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 fichier des espace libres dans les pages des enregistrements d’une page Plusieurs alternatives existent à cette fin. 14

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

‘’Heap File’’ Utilisant une Page Répertoire Page de données tête REPERTOIRE 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! 16

Catalogues du Système Les catalogues sont stockés comme des relations! 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! 18

Attr_Cat(attr_name, rel_name, type, position) 19

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

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

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