18 Bases de donnes parallles et rparties 02032021
18 Bases de données parallèles et réparties 02/03/2021 © Robert Godin. Tous droits réservés. 1
Mesures de performance du parallélisme n Accélération (speedup) – Ap = Temp 1 / Tempsp n n – Ap = p n n Accélération linéaire Scalabilité/extensibilité (scaleup) – – Capacité d’adaptation à la montée en charge Sp = Temp 1 / Tempsp n n p : nombre de processeurs Tempi : temps d’exécution de la tâche T avec i processeurs Tempi : temps d’exécution de la tâche i*T avec i processeurs Deux stratégies – – Extension horizontale (scale out) n Ajouter des noeuds (architecture répartie) Extension verticale (scale up) n 02/03/2021 Ajouter de la capacité à un noeud (architecture parallèle) © Robert Godin. Tous droits réservés. 2
18. 1 Bases de données réparties 02/03/2021 © Robert Godin. Tous droits réservés. 3
18. 1 Bases de données réparties n Bénéfices potentiels – – – n Performance Fiabilité et disponibilité Extensibilité Inconvénients – – Complexité accrue Coût important n conception, administration, . . . 02/03/2021 © Robert Godin. Tous droits réservés. 4
Problèmes techniques Transparence de la répartition n Transactions réparties n Évaluation de requêtes réparties n Interface uniforme à différents modèles n – n extracteurs, médiateurs, . . . Répartition du dictionnaire de données 02/03/2021 © Robert Godin. Tous droits réservés. 5
18. 1. 1 Classification des architectures de BD répartie n BD répartie homogène – n LMD compatible – n e. g. SQL Modèle de données compatible – n même SGBD e. g. relationnel BD répartie hétérogène – 02/03/2021 relationnel, fichiers, objet, . . . © Robert Godin. Tous droits réservés. 6
Autonomie n Multi-SGBD – n SGBD fédéré – – n autonomie totale fonctions de coordination intégrées au SGBD e. g. support de protocole XA SGBD réparti 02/03/2021 © Robert Godin. Tous droits réservés. 7
18. 1. 2 Architecture des schémas 02/03/2021 © Robert Godin. Tous droits réservés. 8
18. 1. 3. 1 DUPLICATION RÉPARTIE n Duplication synchrone (synchronous replication) – n sérialisabilité globale Duplication asynchrone (asynchronous replication) 02/03/2021 – copie primaire – mise-à-jour en différé des autres © Robert Godin. Tous droits réservés. 9
18. 1. 3. 2 FRAGMENTATION RÉPARTIE n Fragmentation horizontale – n e. g. compte des clients de Montréal sur le site de Montréal Fragmentation verticale – 02/03/2021 e. g. la colonne des salaires sur le site de la comptabilité © Robert Godin. Tous droits réservés. 10
18. 1. 4 Transactions réparties 02/03/2021 © Robert Godin. Tous droits réservés. 11
18. 1. 5 Contrôle de concurrence réparti n Verrouillage réparti – Site primaire n – Contrôle réparti n – – – n Une copie verrouillée en lecture Toutes les copies verrouillées en écriture Généralisation : consensus par quorum n n 02/03/2021 verrouiller toutes les copies en écriture Copie primaire Verrouillage majoritaire Protocole biaisé n – contrôle centralisé des verrous Poids assigné à chaque site Qlecture : total de poids requis en lecture Qécriture : total de poids requis en écriture Qlecture + Qéciture > Poids. Total. Des. Sites et Qécriture*2 > Poids. Total. Des. Sites © Robert Godin. Tous droits réservés. 12
Tolérance aux pannes n Read One, Write All Available Adaptation du protocole biaisé – Écrit toutes les copies disponibles – n Si partition réseau – Plusieurs écritures incohérentes dans des partitions différentes … n Techniques de résolution des incohérences – 02/03/2021 Vecteurs de version © Robert Godin. Tous droits réservés. 13
Vecteur de versions n Chaque site i qui maintient une copie de la donnée D – n n Au départ Vij : = 0 A chaque mise à jour de D au site i – n Vij : numéro de version au site i correspondant au site j Vii = Vii +1 Lorsque les sites k et l échangent leurs mises à jour – – Si Vkj = Vlj : les états sont identiques Sinon, Si Vkj <= V lj pour tout j n n – Sinon n 02/03/2021 Remplacer Vkj par Vlj au site k Copie de D au site k : = copie de D au site l Les copies ont été mises à jour indépendamment pas deux sites Il faut les réconcilier … Pas de méthode universelle … © Robert Godin. Tous droits réservés. 14
18. 1. 6 Protocole de confirmation en deux phases 02/03/2021 © Robert Godin. Tous droits réservés. 15
Haute disponibilité malgré partition du réseau ? n n n Théorème CAP Ne peut garantir que 2 parmi 3 Consistance – n disponibilité (Availability) – n Copies consistantes en particulier Si panne d’un site : exploite autre copie tolérance aux Partitions du réseau – 02/03/2021 Si partition : chacune des parties continue à être disponible © Robert Godin. Tous droits réservés. 16
BASE n n Basically Available Soft state – copies non cohérentes suite à une partition du réseau n Eventually consistent n Protocole read one write all available 02/03/2021 © Robert Godin. Tous droits réservés. 17
18. 1. 7 Optimisation de requête répartie n Coût en communication – n Peut dominer le coût E/S ! Potentiel de parallélisme intersite et intrarequête – 02/03/2021 surtout interopération © Robert Godin. Tous droits réservés. 18
18. 1. 7. 1 ETAPES D'OPTIMISATION 02/03/2021 © Robert Godin. Tous droits réservés. 19
18. 1. 7. 2 OPTIMISATION GLOBALE 02/03/2021 © Robert Godin. Tous droits réservés. 20
18. 1. 7. 3 STRATÉGIE PAR SEMI-JOINTURE 02/03/2021 © Robert Godin. Tous droits réservés. 21
Parallélisme interopération et intersite n T 1 T 2 T 3 T 4 Transférer T 2 au site 1 T 1 T 2 = R au site 1 En parallèle, transférer T 4 au site 3 T 3 T 4 = S au site 3 Transférer S au site 1 Ensuite, R S = Résultat final au site 1 02/03/2021 © Robert Godin. Tous droits réservés. 22
18. 1. 8 Conception d'une BD répartie Rapprocher les données des traitements n Nouvelles opportunités n – duplication n synchrone ou asynchrone ? – 02/03/2021 fragmentation © Robert Godin. Tous droits réservés. 23
18. 1. 9 BD répartie avec Oracle n Au site 1 : 02/03/2021 © Robert Godin. Tous droits réservés. 24
Transparence de localisation par SYNONYM 02/03/2021 © Robert Godin. Tous droits réservés. 25
Duplication répartie (REPLICATION) n Master replication (duplication complète) – n synchrone ou asynchrone MATERIALIZED VIEW (remplace SNAPSHOT) – 02/03/2021 Paramètres de contrôle du rafraîchissement © Robert Godin. Tous droits réservés. 26
18. 2 Base de données parallèle Exploitation du parallélisme intrasite n Parallélisme de disques n 02/03/2021 © Robert Godin. Tous droits réservés. 27
18. 2. 1 Disques parallèles n Duplication – disques mirroirs n Code détecteur/correcteur d ’erreur – – – Parité Hamming … n Répartition cyclique (striping) – – 02/03/2021 par bloc par bit (moins populaire) © Robert Godin. Tous droits réservés. 28
Code Correcteur d’Erreur (CCE) de type Hamming n n n Bit 1=20 : bit de parité pour les bits 3=112, 5=1012, 7=1112 Bit 2=21 : bit de parité pour les bits 3=112, 6=1102, 7=1112 Bit 4=22 : bit de parité pour les bits 5=1012, 6=1102, 7=1112 Parité OK Parité des bits 1 et 4 en erreur, donc bit 5 (= 1+4) inversé 02/03/2021 © Robert Godin. Tous droits réservés. 29
18. 2. 2 Architecture RAID (Redundant Array of Independent Disks ) n RAID 0 – n RAID 1 – n – – répartition par bloc disque de parité RAID 5 – – – n répartition par bit (ou octet) un disque de parité (détection) récupération d ’une faute d ’un disque RAID 4 – n codes correcteurs (e. g. type Hamming) moins de disque 1 RAID 3 – n disques miroirs RAID 2 – n répartition par blocs de parité répartis permet les écritures parallèles RAID 6 – – 02/03/2021 répartition par bloc codes correcteurs répartis © Robert Godin. Tous droits réservés. 30
Suite n Implémentation dans couche basse – – transparent au SGBD logiciel n – n matériel Choix dépend des contraintes de l ’application – – – performance : 0 fiabilité : 1 performance + fiabilité (RAID 10) n n pilote RAID coût élevé amène à considérer d’autres alternatives 2 et 4 supplantés par 3 et 5 02/03/2021 © Robert Godin. Tous droits réservés. 31
Comparaison des niveaux RAID Niveau Répartition Redondance Espace Fiabilité Lecture Écriture 0 - ++ (inter-bloc) ++ bloc 1 0+1 bloc 2 aucune miroir --- +++ ++ (inter-bloc) ++ CCE -- ++ - - 3 bit parité bit - + (une faute) ++ (un bloc à la fois) - 4 bloc parité bloc - + (une faute) ++ (inter-bloc) - 5 bloc parité bloc répartie + (une faute) ++ (inter-bloc) ++ 6 bloc CCE réparti -- ++ + 02/03/2021 ++ (inter-bloc) © Robert Godin. Tous droits réservés. 32
18. 2. 3 Parallélisme d’entréesortie au niveau du SGBD n Fragmentation de table – Aléatoire n requêtes difficilement prévisibles – – Partition par intervalles de valeurs n – clé de partition Partition par hachage n 02/03/2021 e. g. entrepôt de données sélection par égalité © Robert Godin. Tous droits réservés. 33
Hachage distribué tolérant aux fautes Hache les objets et sites sur un cercle n Place les objets sur le site suivant sur le cercle n Réorganisation locale des objets suite à un ajout/suppression d’un site n 02/03/2021 © Robert Godin. Tous droits réservés. 34
18. 2. 4 Autres formes de parallélisme Plusieurs processeurs n Plusieurs unités de mémoire n Duplication des processus SGBD n – 02/03/2021 processus miroirs pour fiabilité © Robert Godin. Tous droits réservés. 35
Architecture à mémoire partagée (Symmetric Multi. Processor – SMP) 02/03/2021 © Robert Godin. Tous droits réservés. 36
Architecture à disques partagés 02/03/2021 © Robert Godin. Tous droits réservés. 37
Sans partage 02/03/2021 © Robert Godin. Tous droits réservés. 38
Oracle 10 g n n Métaphore du « grid computing » Ressource de calcul virtuelle – Transparence de l’architecture matérielle n Supporte plusieurs combinaisons d’architectures parallèles et réparties – n Fiabilité Performance Automatismes sophistiqués n n 02/03/2021 Tire profit du coût décroissant des architectures à lames (machines peu coûteuses, Linux, réseaux très rapides, clusterware pour partage des disques, …) Paramétrage de haut niveau n – Oracle Real Application Clusters (RAC) • Un seul SGBD virtuel • Architecture cluster à disque partagé n Mécanismes de surveillance et de mise au point intégrés Basculement transparent d’application suite à une faute Répartition automatique des services sur un bassin de ressources © Robert Godin. Tous droits réservés. 39
Parallélisme intraopération Parallélisme à l’intérieur d’une opération n Balayage n Tri n Sélection n Jointure n Agrégats n… n 02/03/2021 © Robert Godin. Tous droits réservés. 40
Sélection parallèle 02/03/2021 © Robert Godin. Tous droits réservés. 41
Jointure parallèle n Fragmentation symétrique n Fragmentation et duplication 02/03/2021 © Robert Godin. Tous droits réservés. 42
Architectures massivement réparties de machines de commodité n Pour traiter les volumes gargantuesques – n Architecture sans partage – – n n Consistance limitée (transaction locale, BASE, …) Scalabilité simple à réaliser – n Réseau très rapide Grappes de machine de commodité (fiabilité limitée) Fragmentation et duplication – n Big data Ajout de machines sans réorganisation complexe Pas de schéma rigide API simple (no. SQL) 02/03/2021 © Robert Godin. Tous droits réservés. 43
Paradigme map-reduce de traitement parallèle n Fonctions map et reduce exécutées en parallèle – – – n Phase map n n Architecture massivement parallèle sans partage Utilisateur code les fonctions map et reduce Contrôleur central répartie les traitements Traitement indépendant sur chacun des noeuds Input : (clé input map, valeur input map) Output : {(clé output map, valeur output map)} Phase reduce n n Input : {(clé output map, valeur output map)} Output : {clé output map, valeur} Traitement intermédiaire pour regrouper les output de 02/03/2021 © Robert Godin. Tous droits réservés. 44 map n
E. g. Indexation de pages Web n Map – – Chaque nœud traite un sous-ensemble de pages Pour chaque page n n n Input : (Id. Page, texte de la page) Output : ensemble de paires (Id. Terme. Index, Id. Page) Reduce – – Chaque nœud traite un ensemble de termes Rassemble les paires pour un terme et forme le résultat n 02/03/2021 Output : (Id. Terme. Index, {Id. Page}) © Robert Godin. Tous droits réservés. 45
API no. SQL n Modèle clé/valeur – n BD de documents – n Valeur structurée (ensemble d’attributs/valeurs) Map mutidimensionnel – – Get (clé de ligne, clé de [famille]colonne, estampille) ~ Get(entité, attribut, estampille) Fragmentation par famille de colonnes Fragmentation par intervalle de clé de ligne Graphe 02/03/2021 n Get(clé, valeur), Put(clé, valeur), Delete(clé) © Robert Godin. Tous droits réservés. 46
Oracle exadata n Cellule exadata – – – n Processeurs + disques + flash cache 336 TB SATA ou 100 TB SAS 5 TB Flash Interconnexion infiniband 40 GB/sec Temps d’accès jusqu’à 0. 001 ms Stockage « intelligent » – Pré-traitement en parallèle n n n – 02/03/2021 Sélection Compression par colonne Indexation Répartition + duplication de données © Robert Godin. Tous droits réservés. 47
BD en mémoire centrale Limite sur la taille de la BD n Performance extrême n Structures optimisées pour la mémoire centrale n Duplication/répartition n 02/03/2021 © Robert Godin. Tous droits réservés. 48
- Slides: 48