Gestion de données réparties
Cours 1
SGBD distribué
SGBDR
SGBD1 SGBD2
Rend la distribution (ou répartition) des BD locales transparente
– catalogue des BD
– traitement des requêtes distribuées
– gestion de transactions distribuées
– cohérence, sécurité, réplication, etc.
Evaluation
• Avantages
– extensibilité
– partage des données hétérogènes et réparties – performances avec le parallélisme
– disponibilité (tolérance aux pannes) avec la réplication
• Difficultés
– administration complexe
– distribution du contrôle
– difficulté de migration
Migration vers une BDR
Décomposition physique en BD locales
Intégration logique des BD locales existantes
BD
BD1 BD2 BD3
BD
BD1 BD2 BD3
Architecture de schémas
Schéma global
application 1 application 2
Schéma local 1 Schéma local 2 Schéma local 3
– Avantage: indépendance applications/BDR
– Inconvénient : schéma global à gérer
Architecture
Schéma
décomposition de la requête
schéma local
schéma local
global
composition du résultat
schéma local
Résultats Requêtes
interfaces différentes interfaces
identiques
Processeur de requêtes
Source1 Adaptateur1
Source2 Adaptateur2
Source3 Adaptateur3
sous-requêtes
Catalogue global des sources
Schéma global
• schéma conceptuel global
– donne la description globale et unifiée de toutes les sources de données (e.g., des relations globales)
– ex. Offres (emploi, ville, date), Demandes (nom, emploi)
• schéma de placement
– règles de correspondance avec les données locales – Offres = Offres@site1 ∪ Offres@site2
– Demandes = Demandes@site1
Fonctions d’un adaptateur
JDBC
Adaptateur
Extraction Structuration Filtrage et fusion Transformation Table
virtuelle Source
Exemple d’adaptateur
H T T P
SQL
Adaptateur Offres 1
Serveur Web pages HTML/XML Transformation
EMPLOI MECANO TECHNIC MECANO MECANO TECHNIC MECANO MECANO TECHNIC MECANO MECANO TECHNIC MECANO
VILLE LYON LYON GRENOBLE ANNECY LYON GRENOBLE ANNECY ANNECY LYON GRENOBLE ANNECY LYON
DATE 09/99 12/99 03/98 05/98 09/99 12/99 03/98 05/98 09/99 12/99 03/98 05/98
Offres 1
Filtrage Structuration
Extraction
emploi
ville
date
select * from Annonces 1
where (emploi=mécano oremploi=technicien) and région=Rhône-Alpes
Offres d’adaptateurs
• Fournisseurs indépendants
– extracteurs indépendants entre les données sources et les outils cibles
– Information Builders Inc. (IBI), Evolutionary Technology Inc. (ETI), Prism, Carleton, etc.
• Editeurs de SGBD
– passerelles entre le SGBD et les données sources
– interface standard : ODBC, JDBC, OLE/DB, ADO
– Oracle, DB2, Microsoft, Sybase, etc.
Intégration de bases de données
SD 1 SD 2 SD n
N modèles
Intégration
de schémas Intégrateur
Schéma Global Traduction
de schémas
Schéma local 1
Traducteur 1 Traducteur 2 Traducteur n
Le même modèle
n n n
Schéma local 2 Schéma local n
Modèles d’intégration
• Modèle relationnel
– structures de données simples et régulières
• Modèle objet
– structures de données complexes et régulières
• Modèle semi-structuré (XML)
– structures de données complexes et irrégulières
– pas de schéma obligatoire
Intégration de schémas
• 1. pré-intégration
– identification des éléments reliés et établissement des règles de conversion (e.g. 1 pouce = 2,54 cm)
• 2. comparaison
– identification des conflits de noms (synonymes et homonymes) et des conflits structurels (types, clés)
• 3. mise en conformité
– résolution des conflits de noms et des conflits structurels (changements de types, de clés)
• 4. fusion et restructuration
– fusion des schémas intermédiaires pour créer le schéma intégré
Intégration en relationnel
• Problèmes: renommage et introduction de valeurs nulles
nom ville P. Dupont
A. Martin
Paris Nantes
nomF ville Martin
Smith
Nantes Lille Emp@Site1
tel.
0140...
0235...
Emp@Site2 prenom
Anne Jean prenom nom ville
P. Dupont Martin A. Martin Smith
Paris Nantes Nantes Lille
Emp = Emp@Site1 U Emp@Site2
null Anne null Jean
tel.
0140...
null 0235…
null
Interrogation en relationnel (SQL)
select prenom, nom, tel.
from Emp
where ville = "Nantes"
prenom nom ville P. Dupont
Martin A. Martin Smith
Paris Nantes Nantes Lille null
Anne null Jean
tel.
0140...
null 0235…
null
prenom nom
Martin A. Martin Anne
null
tel.
null 0235…
Intégration en objet
• Problème: redéfinition d’attribut
Emp nom ville
tel. : null
Emp@site1 tel.
Emp@site2
nom: (prenom, nomF)
A. Martin, Nantes, 0235...
(Anne, Martin), Nantes
Interrogation en objet (SQL3)
select nom, tel.
from Emp
where ville = "Nantes"
(Anne, Martin), null A. Martin, 0235…
Traitement de requête distribuée
Processeur de requête
Reformuler sur les schémas locaux
Identifier les opérations
exécutables par les adaptateurs Produire un plan d ’exéc. distribué
Système d’exécution
Intégrer les résultats
call call
résultat
résultat
Adaptateur Adaptateur Requête
Exemple de traitement de requête simple
Fragmentation
Optimisation
R = R1 U R2 Select A from R where B = b
Select A from R1 where B =b union Select A from R2 where B = b
Select A from R1 @ Site1 where B = b union Select A from R2 @ Site3 where B = b
R1 = R1 @ Site1 R2 = R2 @ Site2 R2 = R2 @ Site3
SGBD distribués
• SGBD relationnels
– Oracle, Ingres, Sybase, DB2, Informix
• DataJoiner (IBM) – basé sur DB2
• VirtualDB (Enterworks)
– basé sur GemStone, vue objet des tables
• Open Database Exchange (B2Systems)
Oracle et la distribution des données
SGBD
Oracle Net8
SQL Server Net8 SQL*Connect
Requête
OCI
OCI DB2 Admin.
• SGBD Oracle
– gestion du catalogue de la BDR
• SQL*Net
– connexion client-serveur, login à distance automatique – requêtes distribuées, transactions distribuées, réplication
• SQL*Connect : passerelle vers les bases non-Oracle
Net8 SQL*Connect
Database link
• Lien à une table dans une BD distante specifié par : – nom de lien
– nom de l'utilisateur et password
– chaîne de connexion Net8 (protocole réseau, nom de site, options, etc…)
• Exemple
CREATE DATABASE LINK empParis
CONNECT TO patrick IDENTIFIEDBY monPW USING Paris.emp
Le problème d’intégration d’information
• Prolifération des sources de données distribuées – publiques et privées (payantes)
– très nombreuses
– autonomes (contrôle local) – incohérentes (redondance) – hétérogènes
• Famine d ’information
– difficile d’extraire l ’information pertinente – filtrage manuel
– coût élevé
Les problèmes en client-serveur
Appli1
Source1
Appli2 Appli3
Source2 Source3 Source4
• Chaque application doit gérer – les communications
– la manipulation de données – les performances
• Ne passe pas à l’échelle
Entrepôt de données
Intégrateur Entrepôt (BD relationnelle)
requête réponse
Schéma local Schéma local Schéma local
Extraction et nettoyage de données utilisateur
Source 1 Source 2 Source 3
Entrepôts de données
• Fonctions
– Regroupement et récupération de données existantes – Référencer les données de manière uniforme
– Stockage des données et de l’historique des données – Mise à disposition des données pour analyse
• Bilan
– Bonnes performances
– Données pas toujours fraîches – Nettoyage et filtrage des données
Médiateur
Schéma global
Schéma local Source 1
Schéma local Source 2
Schéma local Source 3 Médiateur
requête réponse
utilisateur
adaptateur
adaptateur adaptateur
Médiateurs d’information
• Fonctions
– catalogue global des données – intégration de schémas
– génération d’adaptateurs – requêtes distribuées
• Bilan
– point d’accès unique et uniforme
– indépendance application/sources => évolution – les données sont toujours fraîches
– traitement de requêtes peut être coûteux – performances
Réseaux Pair-à-pair
• Réseau d’ordinateurs, où chaque nœud est à la fois client et serveur : met à disposition des ressources, et accède à des données se trouvant sur d’autres nœuds.
• Pas de vision centralisée du système
• Pas de coordination centralisée
• Pas de schéma
• Principe de propagation des requêtes
• Grande autonomie des nœuds
• Accès à des fichiers
Comparaison
milliers Forte
Forte Locale
Simples Fichiers
P2P
centaines Forte
Forte Locale
Simples, textuelles Relationnel,
objet, semi- structuré Médiateurs
dizaines Forte
Faible Globale
Complexes, lecture
Relationnel Entrepôts
dizaines Faible
Faible Globale
Requêtes complexes, transactions Relationnel
SGBD répartis
Nb de sources Autono
mie Hétérog
énité Admin.
Requêtes Modèle
Quelques systèmes
Systèmes utilisant une approche GAV
TSIMMIS (Stanford) : modèle semi-structuré HERMES (Maryland) : relationnel
YAT : semi-structuré AGORA : relationnel
XMLMedia : semi-structuré
Systèmes utilisant une approche LAV
Information Manifold (AT&T) : relationnel (+ quelques concepts objet) Tukwila (U.Washington)
Xyleme : semi-structuré Produits commerciaux :
Les constructeurs ont maintenant des produits (IBM Information Integrator, Microsoft : OLE-DB-NET )
Nombreuses startups
Bibliographie
• A. Halevy, Answering queries using views : a survey, VLDB Journal, 2001.
• http://www.cs.washington.edu/homes/alon/
• S. Chawathe, H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J.D.Ullman, J. Widom : The TSIMMIS Project: Integration of heterogeneous
information sources, in 16th Meeting of the Information Processing Society of Japan, Tokyo, 1994.
• I. Manolescu, D. Florescu, D. Kossman : Answering XML queries over heterogeneous data sources, BDA 2001.
• G. Wiederhold: Mediators in the architecture of future information systems, Computer, 25(3):38-49, 1992.
• G. Wiederhold: Mediation in information systems. ACM Computing Surveys, 27(2), 1995.
Transactions réparties
Concept de transaction
Une transaction est une collection d'actions qui transforment la BD (ou des fichiers) depuis un état cohérent en un autre état cohérent
– BD cohérente (garantie par le système)
– transaction cohérente (garantie par le programmeur)
Begin
Begin EndEnd
BD dans un état cohérent
BD dans un état cohérent exécution de la transaction
Problèmes liés à la répartition
• Les mises à jour sont effectuées sur TOUS les sites, ou sur AUCUN => nécessité de coordonner.
• Items locaux (physique) et items globaux (logique).
• Transaction globale et transaction locale : le système doit garantir la sérialisabilité globale.
• Verrouillage
– centralisé vs décentralisé
– verrous logiques et verrous physiques – verrous mortels intersites
Isolation par verrouillage 2 Phases
verrous
temps T
• Les verrous en lecture sont partageables; ceux en écriture sont exclusifs
• Règle 1
– avant d'accèder à un granule x, une transaction doit acquérir un verrou sur x. Si x est déjà verrouillé de façon exclusive, la transaction attend
• Règle 2
– dès qu'une transaction relâche un verrou, elle ne peut plus acquérir de nouveau verrou
• 2phases strict : tous les verrous sont libérés à la fin de la transaction. Plus contraignant.
Utilisé dans les SGBD répartis pour minimiser le nombre de messages.
Performances
L'objectif est de réduire:
–les blocages
• une transaction attend qu'une autre transaction relâche ses verrous
–les inter-blocages
• un ensemble de transactions attend que l'une d'entre elles relâche ses verrous
Gestion de transactions réparties
application
Gérant de
Transactions Globales
Gérant de
Transactions Locales
Gérant de
Transactions Locales résultats
Begin Read Write Abort Commit
STrans.
STrans.
Protocole de validation en deux étapes (2PhaseCommit)
• Objectif : Exécuter COMMIT pour une transaction répartie
• Phase 1
– Préparer à écrire les résultats des mises à jour dans la BD
• Phase 2
– Ecrire ces résultats dans la BD
• Coordinateur
– composant système d’un site qui applique le protocole (lance la transaction, la découpe en sous-transactions à exécuter sur les différents sites,
coordonne la terminaison de la transaction)
• Participant
– composant système d’un autre site qui participe dans l'exécution de la transaction
Actions du protocole
Participant Coordinator
INITIAL
write abort in log
No
Yes write ready
in log VOTE-COMMIT
Yes GLOBAL-ABORT
write commit in log
No
write abort in log
Abort
Commit INITIAL
WAIT
READY
write commit in log write abort
in log
ABORT COMMIT
COMMIT ABORT
write begin_commit in log
ACK
ACK
write end_of_transaction
in log Any No?
Type of msg ? Ready to Commit ? PREPARE
VOTE-ABORT
GLOBAL-COMMIT
Validation normale
préparer
prêt
valider
finifini préparer
prêt
valider
finifini
P1P1 Coordinateur P2P2
Panne d'un participant avant d'être prêt
timeout
abandon abandon
panne panne
reprise reprise
}
prêt
**
**
**
**
**
**
**
**
finifini
finifini
préparer préparer
P1P1 Coordinateur P2P2
Panne d'un participant après s'être déclaré prêt
**
**
**
}
finifini
reprise reprise panne panne prêt
préparer préparer
P1P1 Coordinateur P2P2
prêt
faitfait
valider valider
valider prêt
Panne du coordinateur
préparer
finifini préparer
prêt
valider finifini
**
**
**
prêt
valider
*
préparer préparer
prêt prêt
P1P1 Coordinateur P2P2
Protocoles de verrouillages répartis
Traduire le verrouillage logique en verrouillages physiques.
1. Pas de réplication :
- gestionnaire de verrous local sur chaque site + facile à implémenter
+ peu de messages (2 pour verrouiller, 1 pour libérer) - gestion des verrous mortels complexe
2. Avec réplication :
- plusieurs méthodes, dont le coût (nb de messages) dépend du nombre de copies, du rapport lectures/écritures, de la concurrence (verrous refusés)
Détection des verrous mortels
1. Timeout
Pb : bien déterminer le délai + pas de messages
- risque d’annulation de plusieurs transactions au lieu d’une seule 2. Graphe d’attente
Les nœuds sont les transactions. On a un arc de Ti ->Tj si Ti attend un verrou tenu par Tj.
On construit des graphes locaux, mais les cycles doivent être détectés sur le graphe global (union des graphes locaux).
T1 T2 T1 T2 T1 T2
Site 1 Site 2 Graphe global
Détection des verrous mortels
Estampilles
même principe qu’en centralisé. Les transactions s’exécutent sur n’importe quel site, et laissent une estampille pour la copie en
question. En cas d’écriture, la transaction écrit sur tous les sites où se trouvent des copies.
Comparaison des estampilles wait-die et wound-wait
Pb. Étendre la notion d’estampille au réparti, harmoniser les horloges.