Machines Bases de Données Bases de Données Parallèles Polytech’IG4 Traitement de Données Distribuées Esther Pacitti 1. Machine base de données • SGBD sur multiprocesseur ou cluster • On parle aussi de SGBD parallèes • Performances grâce au parallélisme • haut débit transactionnel (OLTP) • bon temps de réponse des requêtes décisionnelles (OLAP) • Haute disponibilité et fiabilité grâce à la réplication • Extensibilité avec idéalement • speed-up linéaire • scale-up linéaire 2 Patrick Valduriez Machines Bases de Données Speed-up linéaire • Augmentation linéaire des performances pour une BD et charge constantes en augmentant la configuration (processeurs, mémoire, disque) • par ex. en doublant la config., t(Q) est divisé par 2 perf. obtenue perf. initiale idéal configuration 3 Scale-up linéaire • Performance constante pour une augmentation proportionnelle de la BD ou de la charge et de la configuration • par ex. en doublant la BD et la config., même t(Q) perf. obtenue perf. initiale idéal Configuration et (taille (bd) ou charge (bd)) 4 Patrick Valduriez Machines Bases de Données Architecture à disque partagé Partage des disques (shared disk) Network Attached Storage (NAS) simple, niveau fichier (NFS), ok pour qqs noeuds P … P P M Storage Area Network (SAN) sophistiqué, niveau block, passe à l’échelle … P M • Critique + simplicité et extensibilité - gestion de la cohérence des caches (M) peut limiter les performances 5 Architecture à mémoire distribuée Pas de partage de mémoire ou disque (shared-nothing) + extensibilité et disponibilité excellentes - complexe: besoin de partitionner statiquement les données sur disque P … M P P … P M Utilisée pour clusters de PC • Excellent rapport performancecoût avec des nœuds standards • Avec ou sans partage de disque 6 Patrick Valduriez Machines Bases de Données Architecture de cluster Backbone de 2-10 Gbps entre racks Switch 1 Gbps entre noeuds d’un rack Switch CPU Mem … Switch CPU CPU Mem Mem Disk Disk Disk CPU … Mem Disk Un rack = 16-64 noeuds 7 2. Techniques • Partitionnement des données sur n nœuds • Round-robin, fonction de hachage, index, etc. • Réplication • Augmente les performances et la disponibilité • Traitement de requêtes parallèles • Décomposition des requêtes lourdes en sous requêtes en fonction du partitionnement • Equilibrage de charge • Allocation des requêtes aux nœuds les moins chargés • Failover: basculement automatique des requêtes • Depuis un nœud primaire en panne vers un nœud secondaire • Transactions • 2PC 8 Patrick Valduriez Machines Bases de Données Partitionnement des données • Chaque relation est gérée comme n partitions ••• ••• ••• ••• Round-Robin a-g Hachage ••• h-m ••• u-z Intervalle 9 Réplication • Améliore la haute disponibilité • Disques miroirs • Heurte l’équilibrage de charge lorsqu’un nœud tombe en panne • Solution élaborée, ex. partitionnement chaîné de Teradata Noeud Table R1 R2 R3 R4 1 2 R1 R2 r12 r21 r31 r32 r41 r42 3 4 R3 R4 r13 r14 r23 r24 r34 r43 10 Patrick Valduriez Machines Bases de Données Traitement de requêtes parallèles • 1. Parallélisation des requêtes Select … from R,S where …group by… Parallélisation • traduction en plans d’exécution parallèles • 2. Exécution des opérations parallèles • algorithmes parallèles pour les opérateurs relationnels • adaptation du degré de parallélisme pour équilibrer la charge R1 R2 R3 Sel. Sel. S1 S2 R4 Sel. Sel. S3 S4 Join Join Join Join Grb Grb Grb Grb Grb 11 Equilibrage de charge • Choix du nœud qui peut exécuter Q Q4 Q3 Q2 Q1 • round robin • le moins chargé • référentiel de charge • Fail over Equilibrage de charge • en cas de panne d’un nœud, Q est basculée sur un autre nœud • En cas d’interférence • déplacement des données vers un autre nœud Q1 Q2 Q3 Q4 12 Patrick Valduriez Machines Bases de Données Join Processing • Three basic algorithms for intra-operator parallelism • Parallel nested loop join: no special assumption • Parallel associative join: one relation is declustered on join attribute and equi-join • Parallel hash join: equi-join • They also apply to other complex operators such as duplicate elimination, union, intersection, etc. with minor adaptation 13 Parallel Nested Loop Join node 1 node 2 R1: R2: send partition S2 S1 node 3 R�S= node 4 n � (R � Si ) i=1 14 Patrick Valduriez Machines Bases de Données Parallel Associative Join node 1 node 2 R1: R2: S2 S1 node 3 node 4 R�S= n � (Ri � Si ) i=1 15 Parallel Hash Join node R1: node R2: node S1: S2: node 2 node 1 R�S= node p � (Ri � Si ) i=1 16 Patrick Valduriez Machines Bases de Données Oracle Transparent Application Failover • En cas de panne d’1 nœud • Détection par un autre • Reprise de la connexion et des données Client Nœud 1 Ping Nœud 2 • Transparence pour requêtes Select connect1 17 Microsoft Failover Cluster Topology Client PCs Réseau d’entreprise Réseau interne Commutateur Fibre Channel 18 Patrick Valduriez Machines Bases de Données 3. Principaux produits Editeur Produit Architecture Plateformes IBM DB2 Pure Scale DB2 Database Partitioning Feature (DPF) SQL Server SQL Server 2008 R2 Parallel Data Warehouse Disque partagé Mém. Dist. AIX sur SP Linux sur cluster Disque partagé Mém. Dist. Windows sur SMP et cluster Oracle Real Application Cluster Database machine (avec Sun) Disque partagé Windows, Unix, Linux sur SMP et cluster NCR Teradata Mém. Dist. BYnet NCR Unix et Windows Oracle MySQL Mém. Dist. Cluster Linux Microsoft 19 Architecture Exadata Real Application Cluster Commutateurs Infiniband Cellule de stockage 20 Patrick Valduriez Machines Bases de Données Disque partagé vs mémoire distribuée • Disque partagé • Plus simple à administrer (ajout de disques) • Passage à l’échelle (nombre de nœuds) • Adapté OLTP (mises-à-jour) • Max. qqs teraoctets • Mémoire distribuée • Plus complexe: besoin de partitionner la base • Passage à très grande échelle • Adapté OLAP (lectures) • Très grandes bases (pas de limite) 21 Patrick Valduriez