Contrôle de la concurrence

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Optimisation des requêtes
1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 6 : Protection des données Bertrand Audras Microsoft Technology Center.
Automatismes.
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
Synchronisation des Processus
TRANSACTION Problèmes posés
Chapitre 3 Interblocages
1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre.
Plan Présentation de la Solution. Le Protocole MESI
Les bases de données temps-réel
Exécution en ordre partiel Une fois les instructions renommées, les seules dépendances qui subsistent entre instructions registre-registre sont les dépendances.
Diffusion Nationale TOULOUSE -Mai 2006 STSWEB Gestion des indemnités Indemnités Chef de travaux.
Stéphane Frenot - Département Télécommunication - SID - III - TPMon 337 Pour faire un contrat deux ou plus de parties négocient.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Maracuja Comptabilité
GESTION DE TRANSACTIONS
Objets Opérateurs Listes
Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes ( ACID.
Section XI Traitement de fichiers
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Systèmes de Gestion de Bases de Données (Relationnelles)
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Mémoires Partagées Distribuées pour systèmes dynamiques à grande échelle Vincent Gramoli.
GESTION DE TRANSACTIONS
Techniques de test Boulanger Jean-Louis.
IFT 2251 Génie Logiciel Spécification de Processus Concurrents
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17.
1 Gestion des Transactions: Survol Chapitre Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.
1 Reprise Chapitre Objectifs Vol et forçage: rappel Le log organisation maintient et utilisation Autres structures de données Protocole WAL Points.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
IFT2821 Base de données Chapitre 8 Fonctions avancées
Chapitre 3 Interblocages 3.1. Ressources
RS2.7 : un Canevas Adaptable de Duplication
MI-SESSION 2007 Miguel Garzon CSI3530. Q1. Idée Tri Externe à 3 voies en utilisant 3 tampons Main memory buffers INPUT 1 INPUT 2 OUTPUT Disk INPUT 2INPUT.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Sécurité Informatique Module 05
Les transactions.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
GESTION DE TRANSACTIONS DISTRIBUEES
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Module 8 : Surveillance des performances de SQL Server
Gestion de processus Corrigé TD 1 EFREI I
Systèmes de gestion de bases de données NFP 107 Introduction à la concurrence d’accès Second fragment Philippe Rigaux
La validation 2 phases Travail d'étude et de recherche, DESS TNI
Interactions entre Processus
Surveiller et résoudre le conflit de verrouillage
Gestion des transactions
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Manipulation des Données
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
1  G. Gardarin GESTION DE TRANSACTIONS l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes répartis.
Génère des transactions : – Aléatoirement – Suivant des paramètres définis – Suivant une loi de poisson – Sous transactions Actions : – Opérations aléatoires.
1 Un protocole de cohérence des données tolérant aux fautes Jean-Francois Deverge Encadrants : Gabriel Antoniu, Luc Bougé Réunion GDS IRISA – Projet PARIS.
Les bases du protocole Modbus
La concurrence Objectifs Les bases Le verrouillage à deux phases
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Le Langage de Manipulation de Données LMD Module 6.
1 Transactions Support construit à partir des cours de N. Anciaux, L. Bouganim, P. Pucheral, Z. Kehdad, G. Gardarin, P. Borlat (Oracle France) Benjamin.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Développement d’applications Problèmes relatifs aux BD.
Transaction et concurrence Du Mooc Bador Serge Abiteboul, Benjamin Nguyen, Philippe Rigaux.
Transcription de la présentation:

Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr

Problématique Exemple : virement bancaire Update compte set total=total -100 where compte.id = '0001' Update compte set total=total -100 where compte.id = '0001' Update compte set total=total +100 where compte.id = '0002' Update compte set total=total +100 where compte.id = '0002' Perdu !

Problématique Exemple : virement bancaire Unité entière Update compte set total=total -100 where compte.id = '0001' Update compte set total=total +100 where compte.id = '0002' Unité entière Unité entière Un un Unité

ACID A : Atomicité tous exécuté ou non exécuté C : Cohérence transformation séquentielle d’un état cohérent à un autre I : Isolation pas d’influence d’autres D : Durabilité si valider, alors persister

Transactions Actions: Lecture (read) : RT(O) Ecriture (write) : WT(O) Validations ( commit) : CommitT Annulation (abort) : AbortT Exécution concurrente : partage de ressources sérialisation

Sérialisation L'effet d'une exécution concurrente d'un ensemble de transactions est égale à une exécution séquentielle de cet ensemble de transaction sous un certain ordre Exemple T1 : R(A) W(A) W(C) commit T2 : R(B) W(B) commit

Anomalies et conflits Deux action sont conflictuelles si au moins une est l'écriture. Anomalies connues et leur conflit : Lecture non validée conflit WR Lecture non reproductibles conflit RW Perte d'opération conflit WW

Lecture non validée (1) T1 : R(A) W(A) abort T2 : R(A) W(A) ...... La transaction T2 a lu une valeur de A qui n'est jamais existé

Lecture non validée (2) T1 : R(A) W(A) R(B) W(B) commit L'exécution rend la base de données incohérente Exemple : T1 : A -> B 1000 euros T2 : A= A*(1+2%), B= B*(1+2%)

Lecture non reproductible T1 : R(A) R(A) .... T2 : R(A) W(A) commit La transaction T1 peut se trouver lire deux valeurs distinctes de A sans avoir modifié A (pas de I dans ACID)

Perte d'opération T1 : R(A) W(A) commit T2 : R(A) W(A) commit La transaction T1 supprimer l'effet de T2. Exemple : A= 5; T1 : A = A+1; T2 : A = A -1;

Annulation impossible T1 : R(A) W(A) abort T2 : R(A) W(A) commit Sérialisation garantit les transformations entre des états cohérents si les transactions sont validées. Sinon, il faut éliminer tous effets produits par la transaction annulée. Exemple : A= 5; T1 : A = A+1; T2 : A = A+1;

Sérialisable conflituellement S est sérialisable conflictuellement si les actions conflictuelles des S sont exécutées dans le même ordre que les actions conflictuelles dans une exécution en série. T1 : R(A) commit T2 : W(A) commit T3 : W(A) commit (a) Sérialisable conflictuellement T1 : R(A) W(A) commit T2 : W(A) commit T3 : W(A) commit (b) Sérialisable mais pas sérialisable conflictuellement

Graphe des conflits (1) - un noeud pour chaque transaction - un arc de Ti à Tj s'il existe une action a de Ti qui précède une action b de Tj telles que a et b sont conflictuelles. Une exécution concurrente S est sérialisable conflictuellement ssi le graphe de conflits de S est acyclique

Graphe des conflits (2) T1 : R(A) commit T2 : W(A) commit (a) Sérialisable conflictuellement T3 T1 : R(A) W(A) commit T2 : W(A) commit T3 : W(A) commit T1 T2 (b) Sérialisable mais pas sérialisable conflictuellement T3

Verrouillages Verrou partageable (en lecture) : LR(A) - Un verrou en lecture sur A doit être obtenu par T avant une lecture de A par T Verrou exclusif (en écriture) : LW(A) - Un verrou en écriture sur A doit être obtenu par T avant une écriture de A par T

Verrouillage en 2 phases - LW(O) précède W(O) LR(O) ou LW(O) précèdent R(O) - Tous les verrou doivent être libérés avant la fin de la transaction ou dans son annulation. - 2PL : Aucune demande de verrouillage ne pet succéder à une libération de verrou. è

Sérialisation et 2PL 2PL garantit le graphe des conflits est acyclique Protocole : une action n’est exécutée que si elle n’est pas conflictuelle avec une action déjà exécutée d’autre transaction active Entrée : W(B) W(C) commit W(A) commit W(D) W(B) commit Sortie : W(B) W(C) commit W(A) commit W(D) W(B) commit

Lecture non validée et 2PL Entrée : T1 : R(A) W(A) R(B) W(B) commit T2 : R(A) W(A) R(B) W(B) commit T1 T2 Sortie : T1 : R(A) W(A) R(B) W(B) commit T2 : R(A) W(A) R(B) W(B) commit T1 T2

Lecture non reprodctible et 2PL Entrée : T1 : R(A) R(A) commit T1 T2 T2 : R(A) W(A) commit Sortie : T1 : R(A) R(A) commit T1 T2 T2 : R(A) W(A) commit

Verrouillage en 2 phases strict - LW(O) précède W(O) LR(O) ou LW(O) précèdent R(O) - Tous les verrou doivent être libérés avant la fin de la transaction ou dans son annulation. - Strict 2PL : Tous les verrous d’une transaction sont libérés uniquement à la fin de la transaction

Annulation possible avec Strict 2PL Strict 2PL garantit la possibilité d’annulation Entrée : T1 : R(A) W(A) abort T2 : R(A) W(A) commit Sortie : T1 : R(A) W(A) abort T2 : R(A) W(A) commit

2PL et interblocage Entrée : Sortie : T1 : W(A) W(B) W(C) commit T2 : W(B) W(A) commit Sortie : T1 : LW(A) W(A) LW(B) T2 : LW(B) W(B) LW(A) ….

Gestion des interblocages (1) Détection : Graphe des attentes Prévention : Ti demande un verrou conflictuel avec Tj Wait-Die : Si Ti plus de priorité, alors Ti attend sinon annule Ti Wound-wait : Si Ti plus de priorité, alors annule Tj sinon Ti attend

Gestion des interblocages (2) Graphe des attentes : Si interblocages, alors cyclique T1 : LR(A), R(A), LR(B) T2 : LW(B), W(B) LW(C) T3 : LR(C), R(C) LW(A) T4 : LW(B) T1 T2 T4 T3

Gestion des interblocages (3) Détection V.S. Prévention Fréquence de détection Choix des transaction bloquantes à annuler

Problème des fantômes Ajouter ou supprimer une objet Donc, blocage un ensemble d’objets T1 : LireMax(A) SupprimerMax(B) T2 : LireMax(B) AjouterMax(A)

Niveaux d'isolations Lecture non validée Lecture validée Lecture reproductible Sérialisation Par défaut : sérialisation et lecture-écriture

Lecture non validée

Lecture validée

Lecture reproductible

Sérialisable

Performance et niveaux d'isolation