Données Réparties. Thibault BERNARD. thibault.bernard@univ-reims.fr



Documents pareils
Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Bases de données avancées Concurrence d'accès et reprise

Bases de données et sites WEB Licence d informatique LI345

Cours de Base de Données Cours n.12

Implémentation des SGBD

UNION INTERCEPT SELECT WHERE JOINT FROM ACID

Réplication des données

Module BDR Master d Informatique (SAR)

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Cours Bases de données 2ème année IUT

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Module BDR Master d Informatique (SAR)

Cours Bases de données

Gestion de données réparties. Cours 1

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Systèmes et algorithmes répartis

Gestion répartie de données - 1

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

L exclusion mutuelle distribuée

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

La taille du journal application de l observateur des événements de Windows doit être suffisante pour contenir tous les messages.

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

CH.3 SYSTÈMES D'EXPLOITATION

Intelligence Artificielle Planification

Bases de données cours 1

Chapitre 10. Architectures des systèmes de gestion de bases de données

Projet gestion d'objets dupliqués

Année Universitaire 2009/2010 Session 2 de Printemps

Systèmes et algorithmes répartis

Chapitre 4 : Exclusion mutuelle

Recette Présentation du processus standard de la recette

Gestion répartie de données - 1 Duplication et cohérence

WEA Un Gérant d'objets Persistants pour des environnements distribués

Bases de données réparties: Fragmentation et allocation

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Technologie SDS (Software-Defined Storage) de DataCore

Conception des systèmes répartis

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Introduction aux algorithmes répartis

Présentation du module Base de données spatio-temporelles

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Programmation parallèle et distribuée

Administration des bases de données relationnelles Part I

3. La SGA ou System global Area

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Windows Internet Name Service (WINS)

Vincent Augusto

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

CPII DOM/ED 20/11/2014 LAGORA IMPORT RIU. Manuel utilisation

SQL Server Database Engine : Part1. Modes de récupération / Sauvegardes / Checkpoint

Plan. 1. La planification d un d 2. Méthodes et techniques de planification 3. Conclusion. D. Leclet

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Big Data et Graphes : Quelques pistes de recherche

PLATEFORME DE SUPERVISION

MESSAGERIE VOCALE VTX GUIDE D UTILISATION

Le Network File System de Sun (NFS)

TRACER LE GRAPHE D'UNE FONCTION

Eléments de base de la sécurité des bases de données

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Oracle Database 11g: Administration Workshop I Release 2

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

Gestion des sauvegardes

Note de cours. Introduction à Excel 2007

NOUVEAU. BrandTracker Protection de la Marque et de son Réseau de Distribution avec Track & Trace

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair

Présentation Alfresco

LE SAN ET LE NAS : LE RESEAU AU SERVICE DES DONNEES

ASR3. Partie 4 Le système de fichier. Arnaud Clérentin, IUT d Amiens, département Informatique

La tête dans les nuages

Architectures d'intégration de données

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Culture numérique Cloud computing

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Chapitre IV : La Tenue Des Livres Le journal Le grand Livre

VIII- Circuits séquentiels. Mémoires

Ordonnancement temps réel

CHAPITRE IX : Les appareils de mesures électriques

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

SYSTEME DE SERRURES D HÔTEL GUIDE DE RÉFÉRENCE RAPIDE POUR LES

EMC DATA DOMAIN HYPERMAX

Baladeur Santé VITAL'ACT

Protocole d accès général

Initiation à LabView : Les exemples d applications :

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

Bases de Données Réparties

Programmation parallèle et distribuée

Module Communication - Messagerie V6. Infostance. Messagerie

Etude de fonctions: procédure et exemple

«clustering» et «load balancing» avec Zope et ZEO

Optimisations des SGBDR. Étude de cas : MySQL

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

ITIL Examen Fondation

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Transcription:

Données Réparties Thibault BERNARD thibault.bernard@univ-reims.fr

Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées

Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées

Objectifs / Avantages de la répartition Augmentation des performances Fiabilité / Disponibilité Evolution / Extensibilité Partage Contrôle partagé Hétérogénéité

Problèmes / Inconvénients Mise en œuvre : très complexe Problème du contrôle distribué Support de communication : très lent

Architectures Centralisées Réparties IMPORTANT : Transparence pour l utilisateur: Localisation Partitionnement Duplication

Conception d une base de données Fragmentation Schéma de fragmentation Schéma d allocation Autres techniques

Fragmentation Par relations Horizontale : restriction / union Horizontale dérivée : jointure / union Verticale : projection / jointure Mixte : combinaison de jointure projection et restriction / combinaison de jointure et union

Exemple : Relation Vol VolNum IDCompagnie HeureDépart HeureArrivée Départ Arrivée CX260 CX 13h10 8h00 Paris CDG Hong-Kong AF125 AF 13h15 17h45 Paris CDG Mexico AM437 AM 18h40 19h50 Mexico Guadalajara CA179 CA 13h20 17h00 Paris CDG Houston AA286 AA 18h00 21h00 Boston Houston AF132 AF 18h25 14h00 Paris CDG Tokyo

Exemple : Relation Compagnie ID Compagnie Nom Siege social Pays AF Air France Paris France CX Cathay Pacific Hong-Kong Chine AM AeroMexico Mexico City Mexico AA American Airlines New York United States of America CA Continental Airlines Houston United States of America

Exercices Ecrire un ou plusieurs scenarii de répartition des données mettant en œuvre les différentes fragmentations définies précèdemment. Quelle est LA contrainte à prendre en compte dans le schéma de fragmentation et d allocation? Pourquoi?

Autres Techniques Duplication Allocation Dynamique Fragmentation Dynamique Clichés

Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées

Gestion de la concurence Définition : Une transaction est une unité de traitement séquentielle cohérente et fiable, constituée d une suite d opérations à réaliser sur la base de données. Appliquée à une base de données cohérente, une transaction restitue une base de données cohérente.

Start Commit Abort Opérations sur les Lecture / Ecriture transactions Une transaction est active si elle a effectué une opération start mais pas l opération commit ou abort.

Propriétés des Transactions Atomicité : Toutes les opérations sont effectuées ou aucune d entre elles. Cohérence : Les transactions doivent préserver la cohérence de la base de données. Isolation : Les maj effectuées par une transaction ne sont visibles qu une fois celle ci validée. Durabilité : Les maj sont définitives.

Les Problèmes Soient 2 transactions : T1 et T2 T1 : x<- Lire(X) x<-x+10 Ecrire(X,x) T2 : y<- Lire(X) y<-y+20 Ecrire(X,y)

Perte de mise à jour T1 : x<- Lire(X) T1 : x<- x+10 T2 : y<- Lire(X) T2 : y<- y+20 T1 : Ecrire(X,x) T2 : Ecrire(X,y)

Création d incohérence T1 x <- Lire(a) x <- x+1 Ecrire(a,x) y <- Lire(b) y <- y+1 Ecrire(b,y) T2 z <- Lire(a) z <- z*2 Ecrire(a,z) t <- Lire(b) t <- t*2 Ecrire(b,t)

Création d incohérence Soit l execution suivante: x<- Lire(a) x<-x+1 Ecrire(a,x) Execution complete de T2 y <- Lire(b) y <- y+1 Ecrire(b,y)

Lecture non reproductible T1: x<-lire(a) Afficher(x) x<-lire(a) Afficher(x) T2: y<-lire(a) y<-y*2 Ecrire(A,y)

Gestion des Transactions Gestionnaire de transaction : réaliser les exécutions des transactions. Ordonnanceur : contrôler l ordre des opérations des différentes transactions.

Architecture Transactions Gestionnaire de transactions Centralisée Gestionnaire de données Transactions Ordonnanceur Répartie Gestionnaire de transactions Autres gestionnaires de transactions Autres ordonnanceurs Ordonnanceur Gestionnaire de données

Que fait l ordonnanceur? Lors de la réception d une opération d une transaction, il peut : L executer La rejeter La mettre en attente

Sériabilisité Définition : Une exécution d un ensemble de transaction est dite sérialisable si elle donne pour chaque transation participante, le même resultat que l exécution en série de ces mêmes transactions.

Conflits d opérations Sur 2 ou plusieurs transactions concurentes, les conflits ont lieu sur des opérations: Lecture - Ecriture Ecriture - Ecriture Il faut donc connaître l ordonnancement des opérations Lire et Ecrire sur une donnée.

Graphe de Précédence G=(V,E) où V représente l ensemble des transactions et E les relations de précédance par rapport à une donnée : un arc de i à j avec le label a indique que la Transaction Ti accede a avant Tj Un graphe de précédence sans cycle caractérise une exécution sérialisable.

Exercices Soit l execution suivante : T1 Lire(A) T2 Ecrire(A) T2 Lire(B) T2 Ecrire(B) T3 Lire(A) T1 Ecrire(B) Tracer le graphe de précédence associé

Exercices (suite) Ecrire une exécution de 3 transactions qui soit sérialisable. Vérifier à l aide d un graphe de précédence.

Vérouillage Afin d ordonner les opérations des différentes transactions, il est possible d utiliser des verrous sur les données. 2 types de verrous : Lecture Ecriture Un verrou en Ecriture est exclusif!

Exercice Soient les 3 transactions suivantes : T1: Ecrire(X) Ecrire(Y) T2: Ecrire(Y) Ecrire(Z) Ecrire(X) T3: Ecrire(X) Ecrire(Z)

Exercice (suite) Lock(1,X,E) Lock(2,Y,E) Lock(2,Z,E) Unlock(2,Y) Lock(1,Y,E) Unlock(1,X) Lock(2,X,E) Unlock(2,Z) Unlock(2,X) Lock(3,X,E) Lock(3,Z,E) Unlock(3,X) Unlock(3,Z) Tracer le graphe de précédence!

Verrouillage à 2 phases La technique du verrouillage à 2 phases consiste pour une transaction à ne plus poser de verrous après en avoir relacher un. Verrouillage à 2 phases => sérialisable

Exercice Proposer une exécution respectant le verouillage à 2 phases dans les 3 transactions précédantes. Tracer le graphe de précédence.

Le problème d interblocage Soit l exécution suivante (respectant la technique du verouillage à 2 phases) : Lock(T1,X,E) Lock(T2,Y,L) Lock(T1,Y,E) Lock(T2,X,L) Unlock(T1,X) Unlock(T2,X) Unlock(T1,Y) Unlock(T2,Y) Que se passe-t-il?

Propriété du contrôle de concurrence Sureté : Toute exécution concurente est sérialisable. Vivacité : Toute transaction se termine en temps fini.

Graphe des attentes Outil pour analyser les situations d interblocages Les nœuds du graphe représentent les différentes transactions et un arc entre i et j indique que la transaction i attend un verrou que possède la transaction j.

Detection de l interblocage Le graphe des attentes permet de détecter les situations d interblocage. Celui ci est construit localement au sein de chaque ordonnanceur. En cas d interblocage ce dernier choisit une transaction à annuler. Ce choix dépend: De l effort investi dans la transaction. Du cout de l annulation de cette transaction. Du nombre de circuits qui contient la transaction.

Cadre distribué? On distingue alors un site : le détecteur qui fréquemment fait l union des graphes des attentes locaux à chacun des ordonnanceurs et indique le cas échéant la transition à annuler.

Cadre distribué? Oui mais, n y a-t-il pas des cas où l on risque de détecter un interblocage sans que celui ci soit effectif?

Autres méthodes pour résoudre l interblocage Timeout Construction d un ordre total Estampillage Certification

Exemple Estampillage Soit w(x) la plus grande estampille d'écriture sur x et r(x) la plus grande estampille de lecture sur x. Algo Lecture Si est(ti)<w(x) Annuler Ti Sinon Effectuer lecture r(x) <- max(r(x),est(ti)) Algo Ecriture Si est(ti)<w(x) ou est(ti)<r(x) Annuler Ti Sinon Effectuer Ecriture w(x)<-est(ti)

Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées

2 Problèmes ANNULATION EN CASCADE ANNULATION DES TRANSACTIONS VALIDEES

Le problème des annulations Soient 2 transactions T1 et T2 et 2 données x et y valant initialement la valeur 1. Soit l exécution suivante : T1 Lire(x) T1 x<-x+1 T1 Ecrire(x) T2 Lire(x) T2 Lire(y) T2 y<-y+2 T2 Ecrire(y) T1 Annulée Que se passe-t-il?

Principe de recouvrabilité Le principe de recouvrabilité consiste à ne jamais annuler une transaction validée.

Execution recouvrable Une exécution est dite recouvrable si pour chaque transaction Ti, la validation de Ti précède la validation de toutes les transactions telles que : 1. Tj lit x après que Ti est écrit dessus 2. Ti n est pas annulée avant que Tj ne lise x 3. Chaque transaction qui écrit sur x pendant la période entre Ti ecrit sur x et Tj lit sur x, est annulée

Exemple (1) T1 Lire(x) T1 x<-x+1 T1 Ecrire(x) T2 Lire(x) T2 Lire(y) T2 y<-y+2 T2 Ecrire(y) T2 Validée Non recouvrable!

Exemple (2) T1 Lire(x) T1 x<-x+1 T1 Ecrire(x) T2 Lire(x) T2 Lire(y) T2 y<-y+2 T2 Ecrire(y) T1 annulée Recouvrable, mais annulation en cascade!

Solution Une solution aux annulations en cascade est de ne permettre la lecture de valeurs écrites que par des transactions déjà validées. Ceci assure aussi la recouvrabilité d une exécution.

Types de défaillance Panne de transitions (vu précédemment) Panne de système ou de site (checkpoint) Panne de supports (duplication) Panne de communications

Architecture Le gestionnaire de données est divisé en 2 parties : Gestionnaire de reprise (gère les opérations sur les transactions) Gestionnaire de cache (gère le transfert mémoire stable et mémoire cache) 2 types de mémoires : Mémoire cache Mémoire stable

Panne de système Le principe est d effectué un journalisation des opérations qui ont été effectuées sur la bases de données. L'opération restart du GR pourra alors effectuer 2 actions : Undo Redo

Principe de la reprise Si l on trouve dans le journal, une Transaction comprenant un start sans le commit associé, l action Undo est effectuée sur cette transition. Dans le cas contraire, c est-à-dire on trouve un start et un commit, l action Redo est effectuée sur cette transition. On utilise des points de reprise afin d éviter le parcourt intégral du journal.

Exemple T1 T3 Point de Reprise T2 T4 T5 Panne Temps

Panne de support Principe analogue à la panne de site avec duplication de la base de données sur d autres supports.

Cas distribué Chaque transaction appartient à un seul site. Néanmoins celle ci peut accéder aux données d autres sites. Il convient donc à chacun des sites de s accorder sur l opération finalisant l exécution de la transaction : Problème de consensus distribué.

Consensus Distribué Le système est composé comme suit : Un coordinateur (le site propriétaire de la transaction) Des participants (les sites hébergeants des données lues ou écrites par la transaction)

Validation à 2 phases Le coordinateur demande à chaque site de s accorder sur commit ou abort. Chaque site répond au coordinateur sur commit ou abort. Si le choix est abort le site annule tout de suite la transaction. Le site collectionne les réponses des sites. Si il y a aucune reponses abort, commit est décidé. Sinon abort est décidé. Le coordinateur relaie la décision aux sites.

Cas de panne temporaire de site Un site venant de subir une défaillance s informe auprès d autres sites pour connaître la décision qui avait été prise.

Panne de communication (bref résumé) Pas de réponse d un site (détection par timeouts) : abort est décidé (par le coordinateur et le site ne communiquant pas) Un site ne reçoit pas la réponse du coordinateur. Il tente de s informer auprès d autres sites.

Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées

Gestion de données dupliquées Assurer la cohérence d une donnée sur chacun des sites la contenant. L utilisateur ne doit pas voir la donnée comme dupliquée. Problème des lecteurs - redacteurs

Le problème Une action d écriture exclut toute autre action. Une action de lecture peut être combinée avec d autres actions d écriture.

Solution Mise en place d un système de quorum : Tout accès en lecture nécessite r permissions. Tout acces en écriture nécessite w permissions. Avec N le nombre total de permissions (nombre d instance de la donnée), r+w>n et 2*w>N