18 Bases de donnes parallles et rparties 21022021
18 Bases de données parallèles et réparties 21/02/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 21/02/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 21/02/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, . . . 21/02/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 21/02/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 – 21/02/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 21/02/2021 © Robert Godin. Tous droits réservés. 7
18. 1. 2 Architecture des schémas 21/02/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) 21/02/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 – 21/02/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 21/02/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 (verrouillage P) Toutes les copies verrouillées en écriture (X) Généralisation : consensus par quorum n n 21/02/2021 Chaque site verrouille ses données 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écriture > 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 – 21/02/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 21/02/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 (C 2 P) 21/02/2021 © Robert Godin. Tous droits réservés. 15
C 2 P bloquant … C 2 P bloque si coordonnateur en faute n Solutions (plus de messages …) n – C 3 P n choix d’un nouveau coordonnateur en cas de faute – Confirmation PAXOS n Chaque participant – – – 21/02/2021 Exploite consensus PAXOS avec 2 F+1 accepteurs Pour choisir valeur PRET (ou ANNULE) Tolère F fautes © Robert Godin. Tous droits réservés. 16
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 Si panne d’un site : exploite autre copie tolérance aux Partitions du réseau – 21/02/2021 Si partition : chacune des parties continue à être disponible © Robert Godin. Tous droits réservés. 17
BASE n n Basically Available Soft state – n Eventually consistent – n copies non cohérentes suite à une partition du réseau copies deviendront consistantes suite à la résolution de la partition Protocole read one write all available 21/02/2021 © Robert Godin. Tous droits réservés. 18
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 – 21/02/2021 surtout interopération © Robert Godin. Tous droits réservés. 19
18. 1. 7. 1 ETAPES D'OPTIMISATION 21/02/2021 © Robert Godin. Tous droits réservés. 20
18. 1. 7. 2 OPTIMISATION GLOBALE 21/02/2021 © Robert Godin. Tous droits réservés. 21
18. 1. 7. 3 STRATÉGIE PAR SEMI-JOINTURE 21/02/2021 © Robert Godin. Tous droits réservés. 22
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 21/02/2021 © Robert Godin. Tous droits réservés. 23
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 ? – 21/02/2021 fragmentation © Robert Godin. Tous droits réservés. 24
18. 1. 9 BD répartie avec Oracle n Au site 1 : 21/02/2021 © Robert Godin. Tous droits réservés. 25
Transparence de localisation par SYNONYM 21/02/2021 © Robert Godin. Tous droits réservés. 26
Duplication répartie (REPLICATION) n Master replication (duplication complète) – n synchrone ou asynchrone MATERIALIZED VIEW (remplace SNAPSHOT) – 21/02/2021 Paramètres de contrôle du rafraîchissement © Robert Godin. Tous droits réservés. 27
18. 2 Base de données parallèle Exploitation du parallélisme intrasite n Parallélisme de disques n 21/02/2021 © Robert Godin. Tous droits réservés. 28
18. 2. 1 Disques parallèles n Duplication – disques mirroirs n Code détecteur/correcteur d ’erreur – – – Parité Hamming … n Répartition cyclique (striping) – – 21/02/2021 par bloc par bit (moins populaire) © Robert Godin. Tous droits réservés. 29
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é 21/02/2021 © Robert Godin. Tous droits réservés. 30
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 – – 21/02/2021 répartition par bloc codes correcteurs répartis © Robert Godin. Tous droits réservés. 31
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 21/02/2021 © Robert Godin. Tous droits réservés. 32
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 -- ++ + 21/02/2021 ++ (inter-bloc) © Robert Godin. Tous droits réservés. 33
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 21/02/2021 e. g. entrepôt de données sélection par égalité © Robert Godin. Tous droits réservés. 34
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 – n Sur les n sites suivants pour tolérance aux fautes Réorganisation locale des objets suite à un ajout/suppression d’un site 21/02/2021 © Robert Godin. Tous droits réservés. 35
18. 2. 4 Autres formes de parallélisme Plusieurs processeurs n Plusieurs unités de mémoire n Duplication des processus SGBD n – 21/02/2021 processus miroirs pour fiabilité © Robert Godin. Tous droits réservés. 36
Architecture à mémoire partagée (Symmetric Multi. Processor – SMP) 21/02/2021 © Robert Godin. Tous droits réservés. 37
Architecture à disques partagés 21/02/2021 © Robert Godin. Tous droits réservés. 38
Sans partage 21/02/2021 © 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 21/02/2021 © Robert Godin. Tous droits réservés. 40
Jointure parallèle n Fragmentation symétrique n Fragmentation et duplication 21/02/2021 © Robert Godin. Tous droits réservés. 41
Sélection parallèle 21/02/2021 © Robert Godin. Tous droits réservés. 42
Nouvelle génération de SGBD n SGBD traditionnel SQL – – – n Couteau suisse Fait tout bien Non optimal pour applications particulières Nouveaux cas d’utilisation extrêmes – – – 21/02/2021 Big data, Web, flux de données, infonuagique, … Architectures spécialisées Mouvement no. SQL (not only SQL) © Robert Godin. Tous droits réservés. 43
no. SQL n Architecture parallèle/répartie massive – – n Fragmentation et duplication – – n n compression, traitement séquentiel Scalabilité massive (élasticité) – n Disponibilité à tout prix Pas de point de défaillance unique Consistance limitée (transaction locale, BASE, …) Hachage réparti Localement – n Réseau très rapide Grappes de machine de commodité (fiabilité limitée, faible coût) Virtualisation d’un bassin de ressources Flexibilité du schéma API simple – 21/02/2021 Programmation plus complexe … © Robert Godin. Tous droits réservés. 44
API no. SQL n n Fichier brut (pas de modèle) Modèle clé/valeur – n BD de documents – n – – – n Valeur structurée (ensemble d’attributs/valeurs), JSON, XML Map mutidimensionnel – n Get(clé, valeur), Put(clé, valeur), Delete(clé) 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 Tableau multidimentionnel 21/02/2021 © Robert Godin. Tous droits réservés. 45
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 21/02/2021 map © Robert Godin. Tous droits réservés. 46 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 21/02/2021 Output : (Id. Terme. Index, {Id. Page}) © Robert Godin. Tous droits réservés. 47
Big table (GOOGLE) n n Couche au dessus de GOOGLE File System (GFS) Une big table : map multidimensionnel – – – n n (ligne, famille: colonne, estampille): valeur Trié par ligne Famille définie statiquement (fragmentation verticale possible par famille) Transaction limitée à une ligne Fragmentation horizontale automatique par intervalle de lignes – Tablet : intervalle de lignes n – – – 100 -200 Meg 10 -1000 tablets par machine Division en deux suite à croissance Duplication (typiquement 3) Répartition de la charge autogérée Tablet stocké dans plusieurs SSTable de GFS n – – 21/02/2021 Index hiérarchique dans un site maître pour localiser tablet Filtrage des SSTable par filtres de Bloom (option) SSTable : map(clé, valeur) immuable stocké dans ensemble de blocs de 64 K + index Compression locale dans SSTable © Robert Godin. Tous droits réservés. 48
Filtre de Bloom Tableau de m bits n Applique k fonctions de hachage à la clé c n – n Si c est présente – n met à 1 les bits correspondants Tous les bits sont à 1 Sinon – 21/02/2021 Faible probabilité de faux positifs © Robert Godin. Tous droits réservés. 49
Hadoop de Apache n Inspiré de GOOGLE Bigtable/GFS – n n n Code ouvert HDFS inspiré de GFS HBASE inspiré de Big. Table Implémentation de Map. Reduce en Java 21/02/2021 © Robert Godin. Tous droits réservés. 50
HDFS de HADOOP n n n Inspiré de Google GFS Système de gestion fichier réparti Fragments (blocs) de 64 Mo Duplication paramétrable : typiquement 3 Architecture maître/esclave – 1 Name node : méta-données n n n – 21/02/2021 Répertoires/fichiers/sécurité/répartition sur data nodes Point de défaillance unique Sur noeud avec duplication hardware n Data node : données (blocs) © Robert Godin. Tous droits réservés. 51
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 21/02/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. 52
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 – 21/02/2021 Sélection Compression par colonne Indexation Répartition + duplication de données © Robert Godin. Tous droits réservés. 53
Anté-mémoire répartie Oracle coherence, Memcached, … n Solution pour accélérer les lectures de données statiques n Stockage non persistant en mémoire vive n Fragmentation/duplication n API (clé, valeur) n 21/02/2021 © Robert Godin. Tous droits réservés. 54
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 21/02/2021 © Robert Godin. Tous droits réservés. 55
New SQL n n Prototype H-store Produits commerciaux en émergence Support minimal de SQL BD parallèle en mémoire centrale – – Scalabilité horizontale sur architecture sans partage Mémoires centrales de plus en plus grandes n n Optimisée pour transactions simples (OLTP) – – n Limiter le traitement pour gestion de transaction ACID Duplication/fragmentation – n 64 Go * 16 = 1 To Optimisation : limiter les transactions multi-noeuds Exécution sérielle !!! – – 21/02/2021 Seulement procédures stockées Pas de dépendance au temps de réflexion © Robert Godin. Tous droits réservés. 56
Classification des SGBD n http: //blogs. the 451 group. com/information_management/2011/04/15/nosql-newsql-andbeyond/ 21/02/2021 © Robert Godin. Tous droits réservés. 57
Site de référence no. SQL n http: //nosql-database. org/ 21/02/2021 © Robert Godin. Tous droits réservés. 58
- Slides: 58