LOG660 - Bases de données de haute performance BD parallèles et réparties Département de génie logiciel et des TI BD parallèles vs réparties BD réparties Les données se trouvent sur plusieurs sites (noeuds) Chaque site possède un certain degré d autonomie BD parallèles Exploitent le parallélisme à l intérieur d un même site Peuvent utiliser plusieurs processeurs et/ou disques Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 2 Bases de données réparties BD BD Réseau Réseau Programme d'application Logiciel intermédiaire Pilote de télécommunication Client SGBD réparti Logiciel intermédiaire Pilote de télécommunication Serveur de données SGBD réparti Logiciel intermédiaire Pilote de télécommunication Serveur de données BD répartie dans deux sites Chaque site peut avoir une architecture parallèle Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 3 Robert Godin. Tous droits réservés. 1
Bénéfices de BD réparties Performance Coûts de transfert réduits en rapprochant les données de leurs s Ex: clients des succursales de Montréal dans une BD située à Montréal Parallélisme entre les sites (peu évident en pratique) Fiabilité et disponibilité En cas de panne, les autres sites peuvent assurer la disponibilité des données Extensibilité (scalabilité) Si les besoins en stockage et calcul augmentent, on peut rajouter un nouveau noeud, au lieu de remplacer le serveur Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 4 Complexité des BD réparties Transparence de la répartition Les applications ne doivent pas se soucier du fait que les données sont réparties sur plusieurs sites Les nœuds peuvent avoir des schémas/sgbd différents Répartition du dictionnaire de données Gestion des transactions réparties Maintenir les propriété d atomicité, isolation et durabilité des transactions est plus complexe dans un contexte réparti Évaluation de requêtes réparties Les plans d exécution doivent tenir compte Localisation des données sur chaque site Coût de transfert des données Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 5 Architectures réparties 1. SGBD répartis homogènes 2. Multi-SGBD 3. SGBD fédérés Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 6 Robert Godin. Tous droits réservés. 2
SGBD répartis homogènes Application 1 Site 1 (Oracle) Site 2 (Oracle) Application 2 Application 3 Toutes les BD suivent un même schéma et utilisent la même technologie (ex: Oracle) Accès aux données et gestion des transactions réparties souvent fait de manière centralisée Plus grande fiabilité et performance dû à un meilleure couplage entre les sites Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 7 Multi-SGBD Application 1 Site 1 (Oracle) Site 2 (MySQL) Application 2 Application 3 Chaque site est autonome et peut avoir un SGBD de type différent Aucun interface (ex: schéma conceptuel) commun Accès aux données fait à partir de requêtes ad-hoc spécialisées Peut devenir très complexe à gérer Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 8 SGBD fédérés BD répartie virtuelle Application 1 Site 1 (Oracle) Site 2 (MySQL) Interface d accès commun Application 2 Application 3 Intègre plusieurs SGBD autonomes et potentiellement hétérogènes en une seule BD virtuelle Interface d accès commun pour masquer l hétérogénéité des BD et la répartition des données Mécanismes de coordination communs (ex: protocole XA 2-phases) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 9 Robert Godin. Tous droits réservés. 3
SGBD fédérés Application type: Consolidation des données après la fusion/acquisition de compagnies Inconvénients: Intégration du schéma Réécriture des requêtes complexes Performance limitée. Produits commerciaux: IBM InfoSphere Federation Server, Oracle Data Service Integrator, etc. Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 10 Architecture des schémas Applications externe externe externe conceptuel global BD distribuée de localisation local local BD réparties local Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 11 Duplication répartie Copie partielle ou totale d une ou plusieurs tables maîtresses situées sur des sites distants Accès plus rapide aux données car moins de transferts Redondance assure la disponibilité des données si une des copies n est plus accessible Permet de contrôler l accès en limitant les données distantes qui sont accessibles ment La synchronisation entre la table maîtresse et sa copie peut être synchrone ou asynchrone Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 12 Robert Godin. Tous droits réservés. 4
Duplication répartie Duplication synchrone (synchronous replication) La sérialisabilité est assurée sur l ensemble des noeuds Une transaction est confirmée seulement lorsque tous les sites ont été mis à jour Duplication asynchrone (asynchronous replication) Les mises-à-joursont d abord faites sur une copie primaire Les sites de réplication sont mis-à-jour en différé, à partir de la copie primaire, après la confirmation de la transaction Ex. d implémentation: vues matérialisées Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 13 Fragmentation répartie Découpe une table en fragments répartis sur plusieurs sites Co-localisation des données avec leurs s Favorise l extensibilité du système (vs données centralisées) Deux types de fragmentation: 1. Fragmentation horizontale 2. Fragmentation verticale Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 14 Fragmentation répartie Fragmentation horizontale Table col 1 col 2 col 3 col 4 col 5 col 6 col 1 col 1 col 1 Fragment 1 Fragment 2 Chaque fragment contient un sous-ensemble de lignes Ex: comptes des clients de Montréal sur le site de Montréal Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 15 Robert Godin. Tous droits réservés. 5
Fragmentation répartie Fragmentation verticale Table col 1 col 2 col 3 col 4 col 5 col 6 col 1 col 1 col 1 Fragment 1 Fragment 2 Chaque fragment contient un sous-ensemble de colonnes Ex: la colonne des salaires sur le site de la comptabilité Moins utilisé que la fragmentation horizontale Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 16 Transactions réparties Transactions réparties Gestionnaire de transaction Gestionnaire de l'ordonnancement Gestionnaire de données Gestionnaire de transaction Gestionnaire de l'ordonnancement Gestionnaire de données Site coordonnateur: À l origine de la transaction répartie Site participant: Coopère avec le gestionnaire de transaction du site coordonnateur BD et journal BD et journal Site coordonnateur Site participant Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 17 Protocole de confirmation en deux phases (Two-phase commit 2PC) Site coordonnateur (usager) Site participant (données) Début Ecrire préparer au journal Préparer à confirmer Début Attente Vote OK Ecrire prêt au journal (vider tampons journal) Tous ont répondu OK Non Ecrire annuler au journal Annuler Prêt Oui Confirmer Ecrire confirmer Confirmer? au journal Oui Non Confirmé Accepter Annulé Ecrire confirmer Ecrire annuler au journal au journal Accepter Confirmé Annulé Ecrire fin de la transaction au journal Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 18 Robert Godin. Tous droits réservés. 6
Protocole de confirmation en deux phases (Two-phase commit 2PC) Phase 1: demande de confirmation Le coordonnateur demande aux participants de confirmer ou infirmer le succès des transactions s Phase 2: confirmation Le coordonnateur reçoit les réponses des sites participants Si tous les participants ont confirmé le succès, le coordonnateur autorise les participants à compléter les transactions s (écriture du commit dans leur journal) Sinon, le coordonnateur demande aux participants d annuler les transactions s Note: les ressources sont bloquées (verrous) durant l attente de la confirmation Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 19 Optimisation de requête répartie Requêtes répartie vs s Requête : le principal coût provient des écritures et lectures (E/S) en mémoire secondaire (ex: disques durs) Requête répartie: le coût des E/S peut être inférieur à celui des transferts de données entre les sites Parallélisme intra-opération Parallélisation des sélections, jointures, etc. Rarement avantageux dans les architectures réparties Parallélisme inter-opération Calcule simultanément plusieurs opérations d une même requête Plus avantageux dans le contexte réparti Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 20 Étapes d optimisation Requête (ex:sql) Décomposition conceptuel & externe global Requête interne globale Localisation des données de localisation Site coordonnateur Requête sur fragments Optimisation globale Statistiques sur fragments Plan d'exécution réparti Optimisation Shéma interne local & statistiques Site participant Plan d'exécution local Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 21 Robert Godin. Tous droits réservés. 7
Optimisation globale (sans parallélisme) Exemple: jointure entre les tables T 1, T 2 et T 3 Chaque site S i contient une seule table T i Plan 1 : Transférer T1 au site 2 T1 T2 = R au site 2 Transférer R au site 3 R T 3 = Résultat final au site 3 Plan 2 : Transférer T2 au site 1 T1 T2 = R au site 1 Transférer R au site 3 R T 3 = Résultat final au site 3 Plan 3 : Transférer T1 au site 3 Transférer T 2 au site 3 T 1 T 2 T 3 = Résultat final au site 3 Règle: Transférer la plus petite table d abord Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 22 Stratégie par semi-jointure Plan 1 (sans optimisation) : Transférer T2 au site 1 T 1 T 2 = Résultat final au site 1 Plan 2 (stratégie par semi-jointure): Transférer πa(t2) au site 1 T 1 π A(T 2) (= T 1 T 2) = R au site 2 Transférer R au site 2 R T 2 = Résultat final au site 2 Stratégie: Transférer au site 1 seulement les colonnes de T 2 nécessaires à la semi-jointure (ensemble A) Renvoyer ensuite au site 2 le résultat de la semi-jointure pour compléter la jointure avec les autres colonnes Note: le nombre de lignes de T1! T2 doit être petit comparé au nombre de lignes de T2: taille de πa(t2) + taille de R < taille de T2 Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 23 Parallélisme inter-opération et inter-site Opération : T 1! T 2! T 3! T 4 Transférer T2 au site 1 T1! T2 = R au site 1 En parallèle, transférer T4 au site 3 T3! T4 = S au site 3 Transférer S au site 1 Ensuite, R! S = Résultat final au site 1 Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 24 Robert Godin. Tous droits réservés. 8
BD répartie avec Oracle (DATABASE LINKS) Permet à un usager local d accéder aux tables d une autre BD sans qu il soit usager de cette BD Syntaxe: CREATE [SHARED] [PUBLIC] DATABASE LINK nomlien CONNECT TO compteusager IDENTIFY BY motdepasse USING nomservice SHARED: permet de partager la connexion entre plusieurs usagers PUBLIC : rend le lien disponible à tous les usagers locaux nomservice : doit être défini dans un fichier de configuration de la BD Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 25 BD répartie avec Oracle (DATABASE LINKS) Exemple: accès au catalogue de produits en Grande-Bretagne CREATE DATABASE LINK site.europe.uk CONNECT TO Compte14 IDENTIFY BY abc123 USING SID_siteUK SELECT * FROM Compte14.Catalogue@site.europe.uk Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 26 Transparence de localisation (SYNONYM) Synonyme Évite aux applications de devoir connaître la localisation des données (transparence de localisation) Permet de conserver les mêmes requêtes, même si le lien change Exemple (suite): CREATE [PUBLIC] SYNONYM nomsynonyme FOR [nom].nomobjet[@lienbd] CREATE SYNONYM CatalogueEurope FOR compte14.catalogue@site.europe.uk SELECT * FROM CatalogueEurope WHERE Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 27 Robert Godin. Tous droits réservés. 9
Duplication avec vues matérialisées Syntaxe: CREATE MATERIALIZED VIEW nomvue [REFRESH {FAST COMPLETE FORCE} [ON COMMIT ON DEMAND]] [FOR UPDATE] FAST: mise-à-jour incrémentale de la copie COMPLETE: mise-à-jour complète de la copie à chaque rafraîchissement FORCE: mise-à-jour incrémentale lorsque possible, sinon complète ON COMMIT: rafraîchissem ent lorsqu une transaction modifiant les tables maîtresses fait un commit ON DEMAND (défaut): rafraîchissement sur demande de l usager (l instant peut être spécifié avec les clauses START et NEXT) FOR UPDATE: permet de mettre à jour la copie (les changements sont propagés aux tables maîtresses) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 28 Duplication avec vues matérialisées Exemple: copie du catalogue européen CREATE MATERIALIZED VIEW CatalogueComplet REFRESH FAST ON COMMIT AS (SELECT * FROM Catalogue@site.europe.uk) UNION (SELECT * FROM CatalogueCanada) SELECT * FROM CatalogueComplet WHERE Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 29 Bases de données parallèles Exploitation du parallélisme intrasite Parallélisme de disques et d unités de Mémoire vive Disque Disque Disque Disque Disque Améliorent la fiabilité en dupliquant les données (ex: disques miroirs) Augmentent la performance en permettant de en parallèle des requêtes Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 30 Robert Godin. Tous droits réservés. 10
Parallélisme de disque Disques miroirs: Les données d un disque maître sont dupliquées sur un autre disque Code détecteur/correcteur d erreur Utilise un certain nombre de bits dans les données pour détecter une corruption et possiblement la corriger Ex: bit de parité, code de Hamming Répartition cyclique (striping) Améliore la performance en lecture/écriture par l utilisation de plusieurs disques en parallèle Répartit les données sur plusieurs disques, soit par bit (bit-level striping) ou par bloc (bloc-level striping) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 31 A A Architectures RAID (Redundant Array of Independent Disks ) RAID 0 Répartition par bloc RAID 1 Disques miroirs RAID 2 Codes correcteurs (ex: Hamming) Moins de disque que 1 RAID 3 Répartition par bit (ou octet) Un disque de parité (détection) Récupération d une faute d un disque RAID 4 Répartition par bloc Disque de parité RAID 5 Répartition par bloc Blocs de parité répartis Permet les écritures parallèles RAID 6 Répartition par bloc Codes correcteurs répartis Raid 0 : Répartition par bloc Bloc 0 Bloc 4 Bloc 8 Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 32 Bloc 1 Bloc 5 Bloc 9 Raid 1 : Mirroirs Bloc 2 Bloc 6 Bloc 10 Bloc 3 Bloc 7 Bloc 11 A A B B Raid 2 : Codes correcteurs d erreurs A1 B1 C1 Bit 0 Bit 4 Bit 8 A2 B2 C2 Bit 1 Bit 5 Bit 9 A3 B3 C3 Bit 2 Bit 6 Bit 10 A4 B4 C4 Raid 3 : Répartition par bit + parité Bloc 0 Bloc 4 Bloc 8 Bloc 1 Bloc 5 Bloc 9 Bloc 2 Bloc 6 Bloc 10 Bit 3 Bit 7 Bit 11 Raid 4 : Répartition par bloc + parité Parité Bloc 4 Bloc 8 Bloc 12 Bloc 16 Bloc 0 Parité Bloc 9 Bloc 13 Bloc 17 Bloc 1 Bloc 5 Parité Bloc 14 Bloc 18 Bloc 3 Bloc 7 Bloc 11 Bloc 2 Bloc 6 Bloc 10 Parité bloc 19 Raid 0+1 Bloc 0 Bloc 2 Bloc 4 CCEA1 CCEB1 CCEC1 Parité Parité Raid 5 : Répartition par bloc + parité répartie Bloc 3 Bloc 7 Bloc 11 Bloc 15 Parité Bloc 1 Bloc 3 Bloc 5 CCEA2 CCEB2 CCEC2 Bloc 0 Bloc 2 Bloc 4 CCEA3 CCEB3 CCEC3 Bloc 1 Bloc 3 Bloc 5 Principales architectures RAID RAID 1: Duplication complète des données à l aide de disques miroirs Très haut niveau de fiabilité au coût d un espace disque important Met l emphase sur la fiabilité, pas la performance RAID 0+1: Combine la répartition par bloc de RAID 0 avec les disques miroirs de RAID 1 Offre fiabilité et performance, mais demande beaucoup d espace RAID 5: Répartition par blocs (sans duplication) avec bits de parité répartis Offre la performance et une certaine fiabilité (détection d erreur), sans exiger beaucoup d espace Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 33 Robert Godin. Tous droits réservés. 11
Fragmentation de tables (contexte parallèle) Découpe une grosse table en morceaux plus facilement gérables Très utilisée dans les entrepôts de données Permet le parallélisme intra-opérations (ex: accélération des balayages, sélections, jointures, etc.) Partitionnement par intervalles de valeur: Ex: partitionnement de transactions selon l année Accélère les sélections par valeurs et par intervalles de valeurs sur la clé de partitionnement Partitionnement par hashage sur la clé Ex: hashage de la clé primaire de la table Assure une distribution uniforme des lignes dans les partitions Accélère uniquement les sélections par valeur sur la clé de partitionnement Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 34 Partitionnement par intervalles de valeurs Exemple: partitionnement selon la date de transaction CREATE TABLE Transacti on ( id INTEGER INTEGER NOT NULL, idclient INTEGER NOT NULL, idproduit INTEGER NOT NULL, jour INTEGER DATE NOT NULL, ) PARTITION BY RANGE(jou r) ( PARTITIO P1999ouM oi ns N VALUES LESS THAN TO_DATE( 01/2000, MM/YYYY ) TABLESPAC E TS1999ouM oi ns PARTITIO N P2000 VALUES LESS THAN TO_DATE( 01 / 20 01, MM / YY YY ) TABLESPAC E TS2000 PARTITIO N P2001 VALUES LESS THAN TO_DATE( 01 / 20 02, MM / YY YY ) TABLESPAC E TS2001 ); -- Acces a la partitio n des transacti on s de 2001 à 2002 SELECT * FROM Transact io n PARTITIO N( P 20 01 ) ; -- Ajout d une partition ALTER TABLE Transact io n ADD PARTITION (PARTITIO N P2002 VALUES LESS THAN TO_DATE( 01/20 0 3, M M/ YY YY ) TABLESPA CE TS2002); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 35 Sélection parallèle Sélection globale Sélection Sélection Sélection Fragment 1 Fragment 2 Fragment 3 On sélectionne les lignes simultanément dans chaque fragment On concatène les lignes obtenues de chaque fragment Si la sélection se fait par rapport à la clé de partitionnement: On peut ignorer les fragments dont l intervalle (ou la valeur de hashage) ne contient pas les valeurs recherchées Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 36 Robert Godin. Tous droits réservés. 12
Jointure parallèle Conditions préalables: Les tables R et S ont été partitionnées selon la même clé La jointure est faite selon cette clé On limite la jointure aux paires de lignes dans les fragments ayant la même valeur pour la clé: Fragment 1 R Jointure Fragment 1 S Fragment 2 R Jointure Fragment 2 S Fragment 3 R Jointure Fragment 3 S Similaire à la jointure par hashage (HASH JOIN) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 37 Autres formes de parallélisme Plusieurs processeurs Plusieurs unités de mémoire Duplication des processus SGBD Processus miroirs pour fiabilité Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 38 Architecture à mémoire partagée (Symmetric MultiProcessor SMP) Mémoire vive Disque Disque Disque Disque Disque Plusieurs processeurs qui partagent la même mémoire centrale Mécanisme d interconnexion très rapide (bus de données) Processus parallèles communiquent rapidement à travers la mémoire centrale partagée (goulot d étranglement) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 39 Robert Godin. Tous droits réservés. 13
Architecture à disques partagés Mémoire vive Mémoire vive Mémoire vive Mémoire vive Disque Disque Disque Disque Disque Chaque unité de possède sa propre mémoire vive Les disques sont partagés entre les unités de Évite le goulot d étranglement au niveau de la mémoire, mais complexifie la communication entre les processus Ex: architecture en grappe (cluster) - À NE PAS CONFONDRE AVEC LES TABLE CLUSTERS Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver 2011 40 Robert Godin. Tous droits réservés. 14