Sunteți pe pagina 1din 36

18 Bases de données

parallèles et réparties

16/12/2019 © Robert Godin. Tous droits réservés. 1


18.1 Bases de données
réparties

BD BD
locale locale

Réseau Réseau

Programme
SGBD réparti SGBD réparti
d'application
Logiciel Logiciel Logiciel
intermédiaire intermédiaire intermédiaire
Pilote de Pilote de Pilote de
télécommunication télécommunication télécommunication
Serveur de Serveur de
Client
données données

16/12/2019 © Robert Godin. Tous droits réservés. 2


18.1 Bases de données
réparties
 Bénéfices potentiels
– Performance
– Fiabilité et disponibilité
– Expansion graduelle (scalabilité)
 Inconvénients
– Complexité accrue
– Coût important
 conception, administration,...

16/12/2019 © Robert Godin. Tous droits réservés. 3


Problèmes techniques
 Transparence de la répartition
 Transactions réparties
 Évaluation de requêtes réparties
 Interface uniforme à différents modèles
– extracteurs, médiateurs,...
 Répartition du dictionnaire de données

16/12/2019 © Robert Godin. Tous droits réservés. 4


18.1.1 Classification des
architectures de BD répartie
 BD répartie homogène
– même SGBD
 LMD compatible
– e.g. SQL
 Modèle de données compatible
– e.g. relationnel
 BD répartie hétérogène
– relationnel, fichiers, objet,...
16/12/2019 © Robert Godin. Tous droits réservés. 5
Autonomie
 Multi-SGBD
– autonomie totale
 SGBD fédéré
– fonctions de coordination intégrées au SGBD
– e.g. support de protocole XA
 SGBD réparti

16/12/2019 © Robert Godin. Tous droits réservés. 6


18.1.2 Architecture des
schémas
Schéma Schéma Schéma
...
externe externe externe

Schéma
conceptuel
global

Schéma de
localisation

Schéma Schéma Schéma


...
local local local
16/12/2019 © Robert Godin. Tous droits réservés. 7
18.1.3.1 DUPLICATION
RÉPARTIE
 Duplication synchrone (synchronous replication)
– sérialisabilité globale
 Duplication asynchrone (asynchronous replication)
– copie primaire
– mise-à-jour en différé des autres

16/12/2019 © Robert Godin. Tous droits réservés. 8


18.1.3.2 FRAGMENTATION
RÉPARTIE
 Fragmentation horizontale
– e.g. compte des clients de Montréal sur le site de
Montréal
 Fragmentation verticale
– e.g. la colonne des salaires sur le site de la
comptabilité

16/12/2019 © Robert Godin. Tous droits réservés. 9


18.1.4 Transactions
réparties
Transactions
réparties

Gestionnaire de Gestionnaire de
transaction transaction

Gestionnaire de Gestionnaire de
l'ordonnancement l'ordonnancement

Gestionnaire de Gestionnaire de
données données

BD et journal BD et journal

Site
Site participant
coordonnateur

16/12/2019 © Robert Godin. Tous droits réservés. 10


18.1.5 Contrôle de
concurrence réparti
 Verrouillage
– Site primaire
 contrôle centralisé des verrous
– Contrôle réparti
 verrouiller toutes les copies en écriture
– Copie primaire
– Verrouillage majoritaire

16/12/2019 © Robert Godin. Tous droits réservés. 11


18.1.6 Protocole de
confirmation en deux phases
Site coordonnateur (usager) Site participant (données)

Début

Ecrire préparer Préparer à confirmer


Début
au journal

Vote OK Ecrire prêt au


Attente
journal (vider
tampons journal)

Tous ont Non Ecrire annuler Annuler


répondu OK au journal Prêt

Confirmer
Oui
Ecrire confirmer Confirmer?
au journal Oui Non

Accepter Ecrire confirmer Ecrire annuler


au journal au journal
Confirmé Annulé
Accepter

Confirmé Annulé
Ecrire fin de
la transaction
au journal
16/12/2019 © Robert Godin. Tous droits réservés. 12
18.1.7 Optimisation de
requête répartie
 Coût en communication
– Peut dominer le coût E/S !
 Potentiel de parallélisme intersite et intrarequête
– surtout interopération

16/12/2019 © Robert Godin. Tous droits réservés. 13


Requête (ex:SQL)

18.1.7.1 ETAPES
D'OPTIMISATION Décomposition
Schéma
conceptuel &
externe global

Requête interne
globale

Localisation Schéma de Site


des données localisation coordonnateur

Requête sur
fragments

Optimisation Statistiques sur


globale fragments

Plan d'exécution
réparti

Shéma interne
Optimisation locale
local & statistiques

Site participant

16/12/2019 Plan d'exécution


© Robert Godin. Tous droits réservés. 14
local
18.1.7.2 OPTIMISATION
GLOBALE
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

Plan 3 :
Transférer T1 au site 3
Transférer T2 au site 3
T1  T2  T3 = Résultat final au site 3

16/12/2019 © Robert Godin. Tous droits réservés. 15


18.1.7.3 STRATÉGIE PAR
SEMI-JOINTURE
Plan 1 :
Transférer T2 au site 1
T1  T2 = Résultat final au site 1

Plan 2 :
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

16/12/2019 © Robert Godin. Tous droits réservés. 16


Parallélisme interopération
et intersite
 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
16/12/2019 © Robert Godin. Tous droits réservés. 17
18.1.8 Conception d'une
BD répartie
 Rapprocher les données des traitements
 Nouvelles opportunités
– duplication
 synchrone ou asynchrone ?
– fragmentation

16/12/2019 © Robert Godin. Tous droits réservés. 18


18.1.9 BD répartie avec
Oracle
Bd1 Bd2

Réseau Réseau

Programme
instance Oracle instance Oracle
d'application

Oracle Net Oracle Net Oracle Net

Pilote de Pilote de Pilote de


télécommunication télécommunication télécommunication
Serveur de Serveur de
Client données du données du
Site 1 Site 2

 Au site 1 :
CREATE DATABASE LINK Bd2.nomDomaineDuSite2 ... ;

16/12/2019 © Robert Godin. Tous droits réservés. 19


Transparence de
localisation par SYNONYM

CREATE PUBLIC SYNONYM Table2


FOR Schéma2.Table2@Bd2.nomDomaineDuSite2

SELECT …
FROM Schéma1.Table1, Table2
WHERE …

16/12/2019 © Robert Godin. Tous droits réservés. 20


Duplication répartie
(REPLICATION)
 MATERIALIZED VIEW (remplace
SNAPSHOT)
CREATE MATERIALIZED VIEW ClichéTable2 AS
SELECT * FROM Schéma2.Table2@Bd2.nomDomaineDuSite2

 Paramètres de contrôle du rafraîchissement

16/12/2019 © Robert Godin. Tous droits réservés. 21


18.2 Base de données
parallèle
 Exploitation du parallélisme intrasite
 Parallélisme de disques

Unité de Mémoire vive


traitement

Disque Disque Disque Disque Disque

16/12/2019 © Robert Godin. Tous droits réservés. 22


18.2.1 Disques parallèles

 Duplication A A

– disques mirroirs
 Code détecteur/correcteur d ’erreur
– Parité
– Hamming
– …
 Répartition cyclique (striping)
– par bloc
– par bit (moins populaire)
16/12/2019 © Robert Godin. Tous droits réservés. 23
18.2.2 Architecture Raid 0 : Répartition par bloc

RAID (Redundant Array Bloc 0 Bloc 1 Bloc 2 Bloc 3

of Independent Disks )
Bloc 4 Bloc 5 Bloc 6 Bloc 7
Bloc 8 Bloc 9 Bloc 10 Bloc 11
... ... ... ...

Raid 1 : Mirroirs Raid 0+1

 RAID 0 Bloc 0 Bloc 1 Bloc 0 Bloc 1


– répartition par bloc A A B B
Bloc 2
Bloc 4
Bloc 3
Bloc 5
Bloc 2
Bloc 4
Bloc 3
Bloc 5

RAID 1
... ... ... ...

Raid 2 : Codes correcteurs d’erreurs
– disques miroirs
 RAID 2
– codes correcteurs (e.g. type Hamming) A1
B1
A2
B2
A3
B3
A4
B4
CCEA1
CCEB1
CCEA2
CCEB2
CCEA3
CCEB3

– moins de disque que 1 C1 C2 C3 C4 CCEC1 CCEC2 CCEC3

 RAID 3 Raid 3 : Répartition par bit + parité


– répartition par bit (ou octet)
– un disque de parité (détection) Bit 0 Bit 1 Bit 2 Bit 3

– récupération d ’une faute d ’un disque Bit 4


Bit 8
Bit 5
Bit 9
Bit 6
Bit 10
Bit 7
Bit 11
Parité
... ... ... ...
 RAID 4
Raid 4 : Répartition par bloc + parité
– répartition par bloc
– disque de parité
RAID 5
Bloc 0 Bloc 1 Bloc 2 Bloc 3
 Bloc 4
Bloc 8
Bloc 5
Bloc 9
Bloc 6
Bloc 10
Bloc 7
Bloc 11
Parité

– répartition par bloc ... ... ... ...

– blocs de parité répartis Raid 5 : Répartition par bloc + parité répartie


– permet les écritures parallèles
 RAID 6 Parité
Bloc 4
Bloc 0
Parité
Bloc 1
Bloc 5
Bloc 2
Bloc 6
Bloc 3
Bloc 7

– répartition par bloc Bloc 8


Bloc 12
Bloc 9
Bloc 13
Parité
Bloc 14
Bloc 10
Parité
Bloc 11
Bloc 15
Bloc 16 Bloc 17 Bloc 18 bloc 19 Parité
– codes correcteurs répartis
16/12/2019 © Robert Godin. Tous droits réservés. 24
Suite
 Implémentation dans couche basse
– transparent au SGBD
– logiciel
 pilote RAID
– matériel
 Choix dépend des contraintes de l ’application
– performance : 0
– fiabilité : 1
– performance + fiabilité (RAID10)
 coût élevé amène à considérer d’autres alternatives
 2 et 4 supplantés par 3 et 5

16/12/2019 © Robert Godin. Tous droits réservés. 25


Comparaison des niveaux RAID

Niveau Répartition Redondance Espace Fiabilité Lecture Écriture

0 bloc aucune - ++ (inter-bloc) ++


1 miroir --- +++ +

0+1 bloc miroir --- +++ ++ (inter-bloc) ++


2 CCE -- ++ - -
3 bit parité bit - + (une faute) ++ (un bloc à la fois) -

4 bloc parité bloc - + (une faute) ++ (inter-bloc) -

5 bloc parité bloc - + (une faute) ++ (inter-bloc) ++


répartie

6 bloc CCE réparti -- ++ ++ (inter-bloc) +

16/12/2019 © Robert Godin. Tous droits réservés. 26


18.2.3 Parallélisme d’entrée-
sortie au niveau du SGBD
 Fragmentation de table
– Aléatoire
 requêtes difficilement prévisibles
– e.g. entrepôt de données
– Partition par intervalles de valeurs
 clé de partition
– Partition par hachage
 sélection par égalité

16/12/2019 © Robert Godin. Tous droits réservés. 27


18.2.4 Autres formes de
parallélisme
 Plusieurs processeurs
 Plusieurs unités de mémoire
 Duplication des processus SGBD
– processus miroirs pour fiabilité

16/12/2019 © Robert Godin. Tous droits réservés. 28


Architecture à mémoire partagée
(Symmetric MultiProcessor – SMP)

Mémoire vive
Unité de Unité de Unité de
traitement traitement traitement

Disque Disque Disque Disque Disque

16/12/2019 © Robert Godin. Tous droits réservés. 29


Architecture à disques
partagés
Mémoire vive Mémoire vive Mémoire vive Mémoire vive

Unité de Unité de Unité de Unité de


traitement traitement traitement traitement

Disque Disque Disque Disque Disque

16/12/2019 © Robert Godin. Tous droits réservés. 30


Sans partage

Mémoire vive Mémoire vive Mémoire vive

Unité de Unité de Unité de


Disque traitement Disque traitement Disque traitement

16/12/2019 © Robert Godin. Tous droits réservés. 31


Architecture cluster
 Hybride parallèle/réparti
 Interconnexion par LAN rapide
– couche de clusterware
 Architecture en lames (blades)

16/12/2019 © Robert Godin. Tous droits réservés. 32


Oracle 10g
 Métaphore du « grid computing »
 Ressource de calcul virtuelle
– Transparence de l’architecture matérielle
 Supporte plusieurs combinaisons d’architectures parallèles et réparties
– Oracle Real Application Clusters (RAC)
• Un seul SGBD virtuel
• Architecture cluster à disque partagé
 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
 Fiabilité
 Performance
– Automatismes sophistiqués
 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

16/12/2019 © Robert Godin. Tous droits réservés. 33


Parallélisme intraopération

 Parallélisme à l’intérieur d’une opération


 Balayage
 Tri
 Sélection
 Jointure
 Agrégats
…

16/12/2019 © Robert Godin. Tous droits réservés. 34


Sélection parallèle

Sélection
globale

Sélection Sélection Sélection


locale locale locale

Fragment 1 Fragment 2 Fragment 3

16/12/2019 © Robert Godin. Tous droits réservés. 35


Jointure parallèle
 Fragmentation symétrique
Jointure
Fragment 1 R locale Fragment 1 S

Jointure
Fragment 2 R locale Fragment 2 S

Jointure
Fragment 3 R locale Fragment 3 S

 Fragmentation et duplication
Jointure
Fragment 1 R locale Copie de S

Jointure
Fragment 2 R locale Copie de S

Jointure
Fragment 3 R locale Copie de S

16/12/2019 © Robert Godin. Tous droits réservés. 36

S-ar putea să vă placă și