Modèles de stockage et indexation. Architecture en couche d un SGBD. Disques Magnétiques. Hiérarchie mémoire. 4. Organisations arborescentes



Documents pareils
Structure fonctionnelle d un SGBD

Architecture en couche d un SGBD. Modèles de stockage et d indexation. Hiérarchie mémoire. Modèle de stockage: plan du cours

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Optimisations des SGBDR. Étude de cas : MySQL

Rappels sur les fichiers

Administration de Bases de Données : Optimisation

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Big Data et Graphes : Quelques pistes de recherche

Partie 7 : Gestion de la mémoire

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

TD : Codage des images

Administration des bases de données relationnelles Part I

Le Langage De Description De Données(LDD)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Tests de performance du matériel

Architecture des ordinateurs

Évaluation et optimisation de requêtes

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Cours Bases de données

Big Data et Graphes : Quelques pistes de recherche

SYSTÈME DE GESTION DE FICHIERS

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

I4 : Bases de Données

en version SAN ou NAS

Programmation parallèle et distribuée

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

vbladecenter S! tout-en-un en version SAN ou NAS

IV- Comment fonctionne un ordinateur?

Audit activité base Oracle / SAP

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

La continuité de service

Mise en oeuvre TSM 6.1

Programmation parallèle et distribuée

<Insert Picture Here> Solaris pour la base de donnés Oracle

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Configurations maximales

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

L annuaire et le Service DNS

Consolidation de stockage

Du 10 Fév. au 14 Mars 2014

L'évolution dans les technologies de stockage

Bases de données documentaires et distribuées Cours NFE04

Technologie de déduplication de Barracuda Backup. Livre blanc

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Bases de Données relationnelles et leurs systèmes de Gestion

4D v11 SQL Release 5 (11.5) ADDENDUM

Introduction aux SGBDR

Traitement numérique de l'image. Raphaël Isdant

Le e s tocka k ge g DAS,NAS,SAN

Système de Gestion de Fichiers

Présentation du module Base de données spatio-temporelles

Systemes d'exploitation des ordinateurs

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Systèmesdegestionde. basesdedonnées

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Architecture complète de protection du stockage et des données pour VMware vsphere

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François

ARBRES BINAIRES DE RECHERCHE

Les bases de données

Limitations of the Playstation 3 for High Performance Cluster Computing

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Cours de Système : Gestion de Fichiers

CAHIER DES CHARGES D IMPLANTATION

Manuel d administration de Virtual Box MANUEL D UTILISATION VIRTUAL BOX

Concepts et systèmes de stockage

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Une solution stockage sécurisée et distribuée au Synchrotron Soleil

Manuel Utilisateur Nuabee Backup pour Windows 7/8/8.1

HYPER-V CLOUD GUIDES DE DÉPLOIEMENT MODULE 1: ARCHITECTURE ET DIMENSIONNEMENT

Implémentation des SGBD

Le Langage SQL version Oracle

Windows 7, Configuration

Mise à jour : February 4, / 93

Sécuristation du Cloud

Encryptions, compression et partitionnement des données

Bases de données élémentaires Maude Manouvrier

Capacité de mémoire Tablettes

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

GESTION DE LA MEMOIRE

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Antoine Morel Ingénieur Commercial DVI

IaaS à la sauce Portails Focus sur. Pierre Aubert Orange Portails OF/DMGP/Portails/DOP 1 er Juillet 2013

Systèmes d information et bases de données (niveau 1)

Organiser le disque dur Dossiers Fichiers

Contributions à l expérimentation sur les systèmes distribués de grande taille

Gestion répartie de données - 1

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

LE RESEAU GLOBAL INTERNET

Compression de Données - Algorithme de Huffman Document de Conception

Transcription:

Modèles de stockage et indexation. Hiérarchie mémoire 2. Modèles de stockage 3. Propriétés des index 4. Organisations arborescentes 5. Organisations hachées Hiérarchie mémoire Ratio Prix (approx) Accès (ns) Débit (Mo/s) 0 Cache processeur 0 Go/s RAM 0 Go/s (x0 - ) 0.0 Disques 0 7 0ms 00 Mo/s (x0-2 ) 0.00 Bandes / Disques optiques 0 0 qq sec 0 Mo/s (x0-3 ) 3 Architecture en couche d un SGBD Interface Analyseur sémantique Optimiseur Evaluateur de plan d exécution Opérateurs relationnels Méthodes d accès aux données Gestion de Mémoire Gestion de Verrous Gestion des Journaux Système d exploitation Disques Magnétiques Caractéristiques mécaniques Vitesse de rotation : 5-0000 tpm Nombre de plateaux : à 30 Nombre de pistes : jusqu à 0 000 Nombre d octets/piste : 00 000 Tête de lecture Arbre Pistes Secteur piste arbre plateau levier tête de lecture Mouvement du bras Plateaux bras Bras Contrôleur Interface (IDE, SCSI) 2 4

Evolutions matérielles Progression moyenne des disques Capacité + 60% par an Latence + 5% par an contraintes mécaniques Débit + 40% par an Futures technologies FLASH NAND Latence lecture 00 µs Latence écriture 300 µs Contrainte EraseBlock-before-RewritePage Débit 20 Mo/sec 0 fois plus cher qu un disque magnétique MEMS/NEMS (Micro/Nano Electro-Mechanical Systems) Pas encore opérationnel Modèles de stockage des données Les données sont stockées sous forme de attributs, de taille fixe ou variable... stockés eux-mêmes sous forme de s... stockés dans des pages (blocs disques)... stockés dans des fichiers attributs s pages fichiers Rappel : le SGBD gère un cache de pages en RAM à la façon d une mémoire virtuelle 7 Optimisations logicielles Prefetching Le SGBD peut anticiper les patterns d accès aux données Ainsi, il peut pré-charger (prefetch) des données en RAM NB: le prefetching doit être géré au niveau du SGBD (vs. OS) Clustering Regroupement physique des blocs de données Quand ils contiennent des données souvent utilisées ensemble Placement de ces blocs sur La même piste physique Le même cylindre physique Compromis entre bon placement et trop de perte de place Allocation d un ensemble de blocs par «granule» Calibrer la taille du granule pour chaque objet DB Stockage des s (attributs de taille fixe) Att Att2 Att3 Att4 T T2 T3 T4 Adresse de base (B) Adresse = B+T+T2 Les informations concernant les types/tailles d attributs Sont partagées par tous les s d un fichier Sont stockées dans le catalogue système Accéder au i ème attribut la lecture totale du 6 8 5

Stockage des s (att. de taille variable) Deux alternatives de stockage (le nombre d attributs est fixe): Att Att2 Att3 Att4 $ $ $ $ Att Att2 Att3 Att4 Tableau d offsets des attributs La deuxième alternative offre Un accès direct au i ème attribut Un petit coût de stockage supplémentaire (taille de «offset» > taille «$») Pages: s de taille variable Rid = (i,n) Page i Rid = (i,2) Rid = (i,) 20 6 24 N... 2 Pointeurs d emplacements Pointeur N vers l espace libre Nombre d emplacements Déplacement des s dans la page sans changer le Rid Pages : s de taille fixe Emplacement Emplacement 2 Emplacement N... Trou... Emplacement Emplacement 2 Emplacement N Emplacement M Page compacte (pas de trou) N... 0 M M... 3 2 Nombre de s Bitmap (0=trous) Page éparse Nombre d emplacements Identifiant d un (Record id) : Rid = < id page, emplacement #> Remarque la Clé d un est un «pointeur logique», le Rid est un «pointeur physique» 0 Fichiers non ordonnés Soit la table Doctor suivante id number(4) first_name char(30) gender char() specialty char(20) Maria F Pediatrics 2 Antonio M Dermatology Le modèle de stockage NSM (N-ary Storage Model) 3 Dominique F Psychology Maria Pediatrics Le modèle de stockage DSM (Decomposition Storage Model) Optimisation des I/O F 2 Antonio M Dermatology ID ID ID Maria F ID2 ID2 3 Dominique F Psychology 2 ID2 M ID3 3 Antonio ID3 F ID3 Dominique Pages disques ID Pediatrics ID2 Dermatology ID3 Psychology Le modèle de stockage PAX (Partition Attributes Across) Optimisation du cache ID ID2 2 Maria Antonio ID3 3 Dominique F M F Pediatrics Dermatology Psychology 2 9

Indexation Objectifs Offrir un accès rapide à tous les s d un fichier satisfaisant un même critère A partir d une clé de recherche (discriminante ou non, mono ou multiattributs) Sur des fichiers ordonnés sur cette clé, ou non ordonnés, ou ordonnés sur une autre clé Moyen Créer une structure de données accélératrice associant des adresses de s aux valeurs de clés Index Table (ou hiérarchie de tables) implémentant cet accélérateur 3 Catégories d index () Index primaire ou plaçant (primary or clustered) Clé K Tuples du fichier organisés par rapport à l index Les s sont stockés «dans» l index Dit autrement, l adresse disque du dépend de la valeur de la clé de recherche seul index primaire par table Souvent construit par le SGBD sur la clé primaire K K2 Kn Page Page 2 Page i Index secondaire ou non plaçant (secondary or unclustered) Tuples organisés indépendamment de l index Seuls les Rid des s sont «dans» l index Plusieurs index secondaires possibles par table Clé L K K2 Kn Page Page 2 Page i 4 Catégories d index (2) Index dense (dense) Contient toutes les clés Adresse tous les s Index non dense (sparse) Ne contient pas toutes les clés N adresse pas tous les s (e.g., adresse une seule fois chaque page) Nécessite que le fichier soit trié sur les clés Contient alors la plus grande clé de chaque bloc + l'adresse du bloc Page Page 2 Page i Page Page 2 Page i NB : Densité d un index : nb clés dans l'index nb clés dans la table 5 Tuples triés sur K Tuples non triés sur L Catégories d index (3) Mais au fait Peut-on créer un index non dense non plaçant? Peut-on créer un index dense et plaçant? Peut-on créer un index primaire (c.à.d, plaçant) sur une clé secondaire (c.à.d, non discriminante)? Peut-on créer un index secondaire (c.à.d, non plaçant) sur une clé primaire (c.à.d, discriminante)? 6

Catégories d index (4) Index hiérarchisés ou multi-niveaux Permet de gérer de gros index (i.e., très gros fichiers ) Principe : chaque index est indexé Fonctionnement L index est trié (mais trop gros peu performant ) Pourquoi l index à indexer doit-il être trié? On indexe l index Par un second index non dense ( 2ème niveau) On peut continuer (jusqu à obtenir un index non dense qui tiennent dans une seule page ) Structure interne d'un nœud d'arbre-b P0 x a P x2 a2 P2 xi ai Pi xk ak Pk Pi: pointeurs internes permettant de représenter l'arbre; les feuilles ne contiennent pas de pointeurs Pi; ai: pointeurs externes sur les données; xi: valeur de clé. () (x, x2 xk) est une suite croissante de clés; (2) Toute clé y de K(P0) est strictement inférieure à x; (3) Toute clé y de K(P) est comprise entre xi et xi+; (4) Toute clé y de K(PK) est strictement supérieure à xk. 7 9 Organisations arborescentes La structure d arbre-b permet de construire des index équilibrés (B comme Bayer ou comme Balancés). Arbre-B (B-tree) Un arbre-b d'ordre m est un arbre tel que: (i) chaque noeud contient k clés triées, avec m <= k <= 2m, sauf la racine pour laquelle k vérifie <= k <= 2m. (ii) tout noeud non feuille possède (k+) fils. Le ième fils contient des clés comprises entre la (i-)ème et la ième clé du père. (iii) l'arbre est équilibré. Exemple d'arbre-b d ordre 2 Pointeurs vers les noeuds fils 5 8 6 2 2 3 4 6 7 9 0 2 3 4 5 7 8 9 20 22 23 24 26 Pointeurs vers les s 8 20

Hauteur d'un Arbre-B La hauteur d'un arbre-b est déterminé par son ordre et le nombre de clés contenues. pour stocker N clés : log 2m (N) h log m (N) Soit h=3 pour N=8000 et m=0 Ou h=3 pour N=8 millions et m=00 Ou encore h=3 pour N= milliard et m=500 h est très important car il détermine le nombre d E/S nécessaire pour traverser l arbre lors d une sélection Dans la pratique, qu est ce qui détermine m? Et pourquoi est-ce important que l arbre soit équilibré? 2 Exemple d arbre-b+ Recherche de la clé 24 23 Arbre-B+ Notion 5: Arbre B+ (B+ tree) Arbre-B dans lequel on répète les clés des nœuds ancêtres dans chaque nœud et on chaîne les nœuds feuilles pour permettre un accès rapide en séquentiel trié. Les arbres-b+ sont utilisés pour gérer des index hiérarchisés : ) en mettant toutes les clés des articles dans un arbre B+ et en pointant sur ces articles par des adresses relatives ==> INDEX NON PLACANT 2) en rangeant les articles au plus bas niveau de l'arbre B+ ==> INDEX PLACANT 22 Exemple d opérations sur B+Tree d ordre 2 Recherche de la clé 24 Insertion de la clé 29 24

Exemple (cont ) Insertion de la clé 30 Index Bitmap Index Bitmap = index secondaire dense non trié A chaque clé, on associe un bitmap entrée par /0 = contient oui/non la valeur Utilisési ) clé varie sur un domaine de faible cardinalité 2) requêtes multi-critères sans sélectivité dominante Art Berthe Nurse Zouk 000000 0000000 00000000 000000 Art Zouk Berthe Art Zouk Berthe Art Zouk Nurse Peut être vu comme une façon de compresser les listes inversées (listes de Rid) 25 27 Exemple (cont ) Insertion des clés 44, 43, 4 Index Bitmap: combinaison de critères 26 28

Organisations par Hachage Objectif Offrir un accès rapide à tous les s d un fichier satisfaisant un même critère (idem orga. arborescentes) Eviter le coût lié à la traversée d une arborescence Moyen Calculer l adresse du à l'aide d'une fonction de hachage appliquée à la clé de recherche La sélection se fait directement en recalculant cette même fonction 29 Fonction de Hachage DIFFÉRENTS TYPES DE FONCTIONS : PLIAGE DE LA CLE CONVERSION MODULO P BUT : Obtenir une distribution uniforme pour éviter de saturer un paquet Mauvaise fonction de hachage ==> Saturation locale, perte de place SOLUTION : AUTORISER LES DEBORDEMENTS 3 Hachage statique Clé Fonction de hachage 0 2 } Paquets i n 30 Techniques de débordement Adressage ouvert place l'article qui devrait aller dans un paquet plein dans le premier paquet suivant ayant de la place libre; il faut alors mémoriser tous les paquets dans lequel un paquet plein a débordé. Chaînage constitue un paquet logique par chaînage d'un paquet de débordement à un paquet plein. Rehachage applique une deuxième fonction de hachage lorsqu'un paquet est plein pour placer en débordement. 32

Problème du hachage statique Nécessité de réorganisation Un fichier ayant débordé ne garantit plus de bons temps d'accès ( + p), avec p potentiellement grand Il ne garantit pas non plus l uniformité (prédictibilité) des temps d accès Le nombre de paquets primaires est fixe, ce qui peut entrainer un mauvais taux de remplissage Solution idéale: réorganisation progressive Il faudrait pouvoir changer dynamiquement la fonction de hachage mais comment savoir ensuite laquelle appliquer? 33 Hachage extensible (Q) Le fichier est étendu dès qu'un paquet est plein; dans ce cas un nouveau paquet est ajouté au fichier. (Q2) Seul le paquet saturé est doublé lors d'une extension Il éclate selon le bit suivant du résultat de la fonction de hachage appliquée à la clé h(k). Les articles ayant ce bit à 0 restent dans le paquet saturé, alors que ceux ayant ce bit à partent dans le nouveau paquet. (Q3) Chaque entrée d un répertoire donne l'adresse d'un paquet. Les 2**(P-Q) adresses correspondant à un paquet qui a éclaté Q fois sont identiques et pointent sur ce paquet; ainsi, par l'indirection du répertoire, le système retrouve les paquets. (Q4) La gestion de débordement n'est pas nécessaire. 35 Techniques de hachage dynamique Techniques permettant de faire grandir progressivement un fichier haché saturé en distribuant les articles dans de nouvelles régions allouées au fichier. LES QUESTIONS CLÉS : (Q) Quel est le critère retenu pour décider qu'un fichier haché est saturé? (Q2) Quelle partie du fichier faut-il agrandir quand un fichier est saturé? (Q3) Comment retrouver les parties d'un fichier qui ont été agrandies et combien de fois l ont-elles été? (Q4) Faut-il conserver une méthode de débordement et si oui laquelle? 34 Fichier haché extensible H (KEY) Paquets XXXX X X X Signature 00 0 0 Répertoire Paquets Le paquet 0 éclate en deux paquets 00 et 0 - on double la taille du répertoire - on considère un bit de plus dans chaque signature 000 00 00 0 00 0 0 Répertoire 36

Hachage linéaire (Q) Le fichier est étendu par paquet dès qu'un paquet est plein. (Q2) Le paquet éclaté n'est pas celui qui est saturé, mais un paquet pointé par un pointeur courant qui parcourt le fichier circulairement. (Q3) Un niveau d'éclatement P du fichier est conservé dans le descripteur du fichier afin de préciser la fonction de hachage. Pour un paquet situé avant le pointeur courant, (M+P+) bits de la fonction de hachage doivent être utilisés alors que seulement (M+P) sont à utiliser pour adresser un paquet situé après le pointeur courant. (Q4) Une gestion de débordement est nécessaire puisqu'un paquet plein n'est pas immédiatement éclaté. 37 Comparaisons B+Tree vs. Hachage Organisations arborescentes Supporte les point (égalité) et range (inégalité) queries Le nb d E/S dépend de la hauteur de l arbre (usuellement h reste très petit) La taille de l index est potentiellement importante Le coût de mise à jour est potentiellement important Organisations hachées Ne supporte que les point queries Performance optimale (resp. mauvaise) quand les données sont bien (resp. mal) distribuées 39 Paquets d'un fichier haché linéaire H (KEY) X X X X X X X ----------- 000 00 0 00 0 DEBORDEMENTS Les paquets qui génèrent des débordements finiront bien par être éclatés 38 Et la gestion multi-attributs? Ex: Table Médecins fréquemment interrogée sur l attribut Spécialité mais également sur l attribut Adresse Organisations arborescentes Tri multi-critères A, A2, An Permet de traiter les critères du type (A θ x) AND (A2 θ y) Peut-on traiter par exemple (A2 θ y) seul? Organisations hachées Hachage multi-attributs A, A2, An Certains attributs peuvent être privilégiés en leur allouant plus de bits, en positionnant ces bits en début de chaîne Peut-on traiter par exemple (A2 = y) seul? H(A), h2(a2), hn(an) 000000000000000000000 000000000000000000000 40 H(A), h2(a2), hn(an)