BD parallèles et réparties
Transcription
BD parallèles et réparties
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 locale Réseau Programme d'application Logiciel intermédiaire Pilote de télécommunication Réseau SGBD réparti SGBD réparti Logiciel intermédiaire Pilote de télécommunication Logiciel intermédiaire Pilote de télécommunication Serveur de données Serveur de données Client ■ ■ BD locale 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 Bénéfices de BD réparties ■ Performance – Coûts de transfert réduits en rapprochant les données de leurs traitements ■ – ■ Parallélisme entre les sites (peu évident en pratique) Fiabilité et disponibilité – ■ Ex: clients des succursales de Montréal dans une BD située à Montréal 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 – – – ■ Gestion des transactions réparties – ■ 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 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 SGBD répartis homogènes Application 2 Application 1 Site 1 Site 2 (Oracle) (Oracle) 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 2 Application 1 Site 1 Site 2 (Oracle) (MySQL) 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 Site 2 (Oracle) (MySQL) Application 2 Application 3 Interface d’accès commun ■ ■ ■ 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 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 Schéma externe Schéma externe ... Schéma externe Schéma conceptuel global BD distribuée Schéma de localisation Schéma local Schéma local ... Schéma local BD réparties 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 localement ■ La synchronisation entre la table maîtresse et sa copie locale peut être synchrone ou asynchrone Département de génie logiciel et des TI © R. Godin, C. Desrosiers - Hiver 2011 12 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-à-jour sont 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 traitements ■ 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 Fragmentation répartie ■ Fragmentation verticale Table col 1 col 2 col 3 Fragment 1 – – – col 4 col 5 col 6 col 1 col 1 Fragment 2 col 1 … 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 transaction Gestionnaire de l'ordonnancement Gestionnaire de l'ordonnancement Gestionnaire de données Gestionnaire de données BD et journal BD et journal Site coordonnateur Site participant Département de génie logiciel et des TI Site coordonnateur: À l’origine de la transaction répartie Site participant: Coopère avec le gestionnaire de transaction du site coordonnateur © 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 Vote OK Attente Tous ont répondu OK Début Ecrire prêt au journal (vider tampons journal) Non Ecrire annuler au journal Annuler Prêt Confirmer Oui Ecrire confirmer au journal Oui Accepter Confirmé Annulé Confirmer? Ecrire confirmer au journal Non Ecrire annuler 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 Protocole de confirmation en deux phases (Two-phase commit – 2PC) ■ Phase 1: demande de confirmation – ■ Phase 2: confirmation – – – ■ Le coordonnateur demande aux participants de confirmer ou infirmer le succès des transactions locales 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 locales (écriture du commit dans leur journal) Sinon, le coordonnateur demande aux participants d’annuler les transactions locales 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 locales – – ■ ■ Requête locale: 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 Schéma conceptuel & externe global Requête interne globale Localisation des données Schéma de localisation Site coordonnateur Requête sur fragments Optimisation globale Statistiques sur fragments Plan d'exécution réparti Optimisation locale 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 Optimisation globale (sans parallélisme) ■ ■ Exemple: jointure entre les tables T1, T2 et T3 Chaque site Si contient une seule table Ti Plan 1 : Transférer T1 au site 2 T1 ⋈ T2 = R au site 2 Transférer R au site 3 R ⋈ T3 = 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 ⋈ T3 = Résultat final au site 3 Règle: Transférer la plus petite table d’abord Plan 3 : Transférer T1 au site 3 Transférer T2 au site 3 T1 ⋈ T2 ⋈ T3 = Résultat final au site 3 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 T1 T2 = Résultat final au site 1 Plan 2 (stratégie par semi-jointure): Transférer πA(T2) au site 1 T1 πA(T2) (= T1 T2) = R au site 2 Transférer R au site 2 R T2 = Résultat final au site 2 ■ Stratégie: – – – Transférer au site 1 seulement les colonnes de T2 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 : T1 ! T2 ! T3 ! T4 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 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 [email protected] 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 CREATE [PUBLIC] SYNONYM nomSynonyme FOR [nomSchéma].nomObjet[@lienBD] ■ Exemple (suite): CREATE SYNONYM CatalogueEurope FOR [email protected] SELECT * FROM CatalogueEurope WHERE ... Département de génie logiciel et des TI © R. Godin, C. Desrosiers - Hiver 2011 27 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 locale COMPLETE: mise-à-jour complète de la copie locale à chaque rafraîchissement FORCE: mise-à-jour incrémentale lorsque possible, sinon complète ON COMMIT: rafraîchissement 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 locale (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 locale du catalogue européen CREATE MATERIALIZED VIEW CatalogueComplet REFRESH FAST ON COMMIT AS (SELECT * FROM [email protected]) 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 traitement Unité de traitement Disque ■ ■ Disque Mémoire vive Disque Disque Disque Améliorent la fiabilité en dupliquant les données (ex: disques miroirs) Augmentent la performance en permettant de traitement en parallèle des requêtes Département de génie logiciel et des TI © R. Godin, C. Desrosiers - Hiver 2011 30 Parallélisme de disque ■ Disques miroirs: – ■ A Les données d’un disque maître sont dupliquées sur un autre disque Code détecteur/correcteur d ’erreur – – ■ A 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 Architectures RAID (Redundant Array of Independent Disks ) Raid 0 : Répartition par bloc ■ RAID 0 – ■ RAID 1 – ■ Répartition par bloc Disque de parité RAID 5 – – – ■ Répartition par bit (ou octet) Un disque de parité (détection) Récupération d’une faute d’un disque RAID 4 – – ■ Codes correcteurs (ex: Hamming) Moins de disque que 1 RAID 3 – – – ■ Disques miroirs Bloc 0 Bloc 4 Bloc 8 ... Bloc 1 Bloc 5 Bloc 9 ... Bloc 2 Bloc 6 Bloc 10 ... Bloc 3 Bloc 7 Bloc 11 ... Raid 1 : Mirroirs Raid 0+1 RAID 2 – – ■ Répartition par bloc Répartition par bloc Blocs de parité répartis Permet les écritures parallèles RAID 6 – – Répartition par bloc Codes correcteurs répartis Département de génie logiciel et des TI A A B B Bloc 0 Bloc 2 Bloc 4 ... Bloc 1 Bloc 3 Bloc 5 ... Bloc 0 Bloc 2 Bloc 4 ... Bloc 1 Bloc 3 Bloc 5 ... Raid 2 : Codes correcteurs d’erreurs A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4 CCEA1 CCEB1 CCEC1 CCEA2 CCEB2 CCEC2 CCEA3 CCEB3 CCEC3 Raid 3 : Répartition par bit + parité Bit 0 Bit 4 Bit 8 ... Bit 1 Bit 5 Bit 9 ... Bit 2 Bit 6 Bit 10 ... Bit 3 Bit 7 Bit 11 ... Parité Raid 4 : Répartition par bloc + parité Bloc 0 Bloc 4 Bloc 8 ... Bloc 1 Bloc 5 Bloc 9 ... Bloc 2 Bloc 6 Bloc 10 ... Bloc 3 Bloc 7 Bloc 11 ... Parité Raid 5 : Répartition par bloc + parité répartie 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 2 Bloc 6 Bloc 10 Parité bloc 19 Bloc 3 Bloc 7 Bloc 11 Bloc 15 Parité © R. Godin, C. Desrosiers - Hiver 2011 32 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 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 Transaction ( id INTEGER INTEGER NOT NULL, idClient INTEGER NOT NULL, idProduit INTEGER NOT NULL, jour INTEGER DATE NOT NULL, ... ) PARTITION BY RANGE(jour) ( PARTITION P1999ouMoins VALUES LESS THAN TO_DATE(’01/2000’,’MM/YYYY’) TABLESPACE TS1999ouMoins PARTITION P2000 VALUES LESS THAN TO_DATE(’01/2001’,’MM/YYYY’) TABLESPACE TS2000 PARTITION P2001 VALUES LESS THAN TO_DATE(’01/2002’,’MM/YYYY’) TABLESPACE TS2001 ); -- Acces a la partition des transactions de 2001 à 2002 SELECT * FROM Transaction PARTITION(P2001); -- Ajout d’une partition ALTER TABLE Transaction ADD PARTITION (PARTITION P2002 VALUES LESS THAN TO_DATE(’01/2003’,’MM/YYYY’) TABLESPACE 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 locale Sélection locale Sélection locale 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 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 locale Fragment 1 S Fragment 2 R Jointure locale Fragment 2 S Fragment 3 R Jointure locale 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) Unité de traitement Disque ■ ■ ■ Unité de traitement Disque Unité de traitement Disque Disque Mémoire vive 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 Architecture à disques partagés Mémoire vive Mémoire vive Mémoire vive Mémoire vive Unité de traitement Unité de traitement Unité de traitement Unité de traitement Disque ■ ■ ■ ■ Disque Disque Disque Disque Chaque unité de traitement possède sa propre mémoire vive Les disques sont partagés entre les unités de traitement É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