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.

Slides:



Advertisements
Présentations similaires
Contrôle de la concurrence
Advertisements

Chap4- Le mix marketing II- La politique de prix
1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
1 IXERP consulting. L archivage consiste à extraire de la base de données opérationnelle les informations qu' il n est plus nécessaire de conserver «
Règles d’association.
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)
Choix des Taches et des Compétences associées
ANALYSE DES TRAITEMENTS
TRANSACTION Problèmes posés
1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre.
Tir n°1 A2A1 Position initiale Position finale B1 A2 A1 B1 Léquipe B annonce A1 Analyse de la nouvelle situation.
Exercice Notre programme s'exécute en 10 secondes sur A, qui dispose d'une horloge à 100Mhz. Nous tentons d'aider un concepteur à construire une machine.
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.
Renommage et ILP Le compilateur mappe la mémoire sur les registres architecturaux. Les registres architecturaux étant peu nombreux, sont fortement réutilisés.
Échanges de pratiques N°2
Notion d'asservissement
Ordonnancement des mouvements de deux robots
ALGORTHME DE COMPOSITION INTRODUCTION PRINCIPES DE BASE LES ETAPES CONCLUSION.
Synthèses de molécules complexes
Apprendre à se servir d’un tableur
Section VI Structures répétitives (suite)
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
Optimisation des Requêtes. Introduction Introduction.
Parcours de formation SIN-7
Corinne Riverain CPD EPS
Introduction à la conception de Bases de Données Relationnelles
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Programmation logique Démonstrateur automatique
Systèmes d’équations linéaires
Exemple (Chapitre 5) Étape suivante 
GESTION DE TRANSACTIONS
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
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.
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
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.
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.
Optimisation dans les réseaux
IFT2821 Base de données Chapitre 8 Fonctions avancées
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
Les transactions.
Synchronisation Classique
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Sous-espaces vectoriels engendrés
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
ClientsComptes Clients (codeCli,nom) Comptes (numC,codeType) Gestion bancaire ClientsComptes Clients (codeCli,nom) Comptes (numC,codeType) Gestion bancaire.
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
le Potentiel de membrane
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Surveiller et résoudre le conflit de verrouillage
Programmation Système et Réseau
J. Cardoso — C. Sibertin-Blanc — C
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
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.
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 TransMobi : Intergiciel pour la Gestion de Transactions Mobiles Patricia Serrano-Alvarado Claudia L. Roncancio Michel E. Adiba Laboratoire LSR-IMAG Grenoble.
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.
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
1 Transactions Support construit à partir des cours de N. Anciaux, L. Bouganim, P. Pucheral, Z. Kehdad, G. Gardarin, P. Borlat (Oracle France) Benjamin.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Transcription de la présentation:

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 ): Atomicité Cohérence Isolation Durabilité Driss HAZZAF

Définitions Atomicité : Toutes les opérations d'une transaction sont exécutées, ou toutes sont annulées. Une exécution de seulement d'un sous ensemble de ces opérations est interdite. Cohérence: Une transaction transforme la base de données d'un état cohérent à un autre. Isolation : Pour garantir une lecture cohérente aux autres transactions, les résultats d'une transaction ne sont visibles par les autres transactions que lorsque celle ci est validée. Durabilité : Une fois la transaction validée, on ne peut pas annuler une transaction validée, et ses données sont conservées même en cas de panne. Driss HAZZAF

Concurrence Une exécution concurrente est une séquence d’exécution avec entrecroisement des opérations de plusieurs transactions. Comment est représentée une exécution concurrente ? Les transactions sont représentées par des indices, les lectures par des « r », et les écritures par des « w ». Par exemple, pour représenter la lecture de la donnée « x » par la transaction « 1 » : r1[x] Exemple d’une exécution concurente : (Histoire) H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 Driss HAZZAF

Problèmes de concurrence Perte de mise à jour Données non validées Annulation de Transaction Driss HAZZAF

Perte de mise à jour Considérons les transactions T1 et T2 qui modifient le coût du projet WEB ( Le coût initial du projet WEB est 100 ) : L’histoire d’exécution est la suivante : T1 lit le coût du projet WEB ( coût = 100 ) T2 lit le coût du projet WEB ( coût = 100 ) T2 met ce coût à + 10 % => ( coût = 110 ) T1 met ce coût à + 50 % => ( coût = 150 ) Validation T1 Validation T2 A la fin le coût du projet WEB est 150, or ce coût doit être 165. A montrer en lançons deux sql+ et les afficher simultanément : T2 : SQL> select cout from projet 2 where projet_code = 'WEB';   COUT ---------- 100 SQL> update projet set cout = cout*1.1 1 ligne mise à jour. 110 T1 : SQL> update projet set cout = cout*1.5 SQL> commit; Validation effectuée. RESULTAT : SQL> select cout from projet 2 where projet_code = 'WEB'; 165 Driss HAZZAF

Données non validées Considérons les deux mêmes transactions T1 et T2 qui modifient le coût du projet WEB ( Le coût initial du projet WEB est 100 ) : L’histoire d’exécution est la suivante : T1 lit le coût du projet WEB ( coût = 100 ) T1 met ce coût à + 50 % => ( coût = 150 ) T2 lit le coût du projet WEB ( coût = 150 ) T2 met ce coût à + 10 % => ( coût = 165 ) T1 Annulée A la fin le coût du projet WEB est 165, or ce coût doit être 110. Ce scénario est évité dans la base de données car une transaction ne lit que les données validées. Driss HAZZAF

Annulation de Transaction Considérons les transactions T1 et T2. L’histoire d’exécution est la suivante : H = r1[x]w1[x]r2[x]w2[x]c2a1 L’annulation de T1 ( a1 ) impose l’annulation de T2, et ceci après que T2 soit validée ( c2 ). Ce qui est contradictoire avec la règle de durabilité. Driss HAZZAF

Exécution recouvrable Une exécution qui évite l’annulation des transactions validées (Respecte la règle de durabilité ) Exemple : w1[x] r2[x] w2[x] c2 a1 L’annulation de T1 ( a1 ) oblige l’annulation de T2 après que T2 soit validé ( c2 ). Cette exécution n’est pas recouvrable. Par contre l’exécution w1[x] a1r2[x] w2[x] c2 est recouvrable. Driss HAZZAF

Conflit Deux opérations O1 et O2 sont en conflit si elles ne sont pas permutables (l’exécution O1, O2 n’a pas le même effet que O2,O1), et elles appartiennent à deux transactions différentes. Exemple : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 Les conflit : sur x : w1[x]-r2[x] sur y : r2[y]-w3[y] sur z : r2[z]-w3[z], r3[z]-w2[z], w2[z]-w3[z] Driss HAZZAF

Graphe de précédence Les précédences sont créées par les séquences d’opérations d’une même donnée. Dans un graphe de précédence : Les nœuds sont les transactions. Si la transaction Tm précède Tn, alors il existe un arc de Tm vers Tn Exemple : Soit l’exécution : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 T1 T2 T3 Driss HAZZAF

Sérialisabilité Une exécution en série : Il n’y a aucun entrelacement entre les transactions. Les transactions sont exécutées les unes après les autres. Exécutions équivalentes : Deux exécutions sont équivalentes si : Elles ont les mêmes Transactions et les mêmes opérations. Elles font les mêmes modifications dans la base. Elles ont les mêmes impacts sur les transactions. Exécution sérialisable : est une exécution équivalente à une exécution en série. Important : Si le graphe de précédence d’une exécution contient des cycles, alors l’exécution n’est pas sérialisable. Driss HAZZAF

Exécution stricte Une exécution stricte est une exécution qui évite les annulation en cascade. Exemple : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 r2[x] se fait après w1[x] et avant c1, donc H n’évite pas les annulations en cascade. H n’est pas stricte. Driss HAZZAF

Verrouillage à deux phases Le verrouillage à deux phases est une technique de verrouillage des objets par une transaction, et à relâcher les verrous après avoir obtenu tous ce dont elle a besoin. Une transaction passe par deux phases : Acquérir les verrous Relâcher les verrous Au niveau des SGBD les verrous sont relâchés à la fin de la transaction ( Lors de la validation ou l’annulation de la transaction ). Driss HAZZAF

Verrouillage à deux phases (exemple) H: r1[x] r2[y] r3[x] r1[z] r1[u] w3[x] r1[y] r3[u] w2[y] c2 c1 w3[u] c3 r1[x], r2[y] s’exécutent, en prenant les verrous de lecture r3[x] partage le verrou de lecture sur x avec r1[x] et s’exécute r1[z], r1[u] s’exécutent, en prenant les verrous de lecture w3[x] bloquée par r1[x], donc T3 bloquée r1[y] partage le verrou de lecture sur y avec r2[y] et s’exécute r3[u] bloquée, car T3 bloquée w2[y] bloquée par r1[y], donc T2 bloquée c2 bloquée car T2 bloquée c1 s’exécute et relâche les verrous de T1 w3[x] s’exécuter, r3[u] s’exécute. W2[y] s’exécuter C2 s’exécute et relâche les verrou de T2 W3[u] et c3 s’exécutent Le résultat final est donc H’ : r1[x] r2[y] r3[x] r1[z] r1[u] r1[y] c1 w3[x] r3[u] w2[y] c2 w3[u] c3 Driss HAZZAF

Exercice Considérons l’exécution concurrente de trois transactions suivante : H : r1 [x] r2 [y] w1 [y]r3[y]w1 [z]w2 [y]c1w3[z]c3c2   1. Vérifiez si H est sérialisable en identifiant les conflits et en construisant le graphe de sérialisation. 2. L’exécution H est-elle stricte? Justifiez votre réponse. 3. Quelle est l’exécution obtenue par verrouillage à deux phases à partir de H? On considère que le relâchement des verrous d’une transaction se fait au Commit et qu’à ce moment on exécute en priorité les opérations bloquées en attente de verrou, dans l’ordre de leur blocage. 1. Les conflits sur x : aucun Les conflits sur y : r2[y]-w1[y], w1[y]-r3[y], w1[y]-w2[y], r3[y]-w2[y]. Les conflits sur z : w1[z]-w3[z]. Le graphe de sérialisation contient les arcs T2 -> T1 , T1-> T3, T1 -> T2, T3 - > T2 . Il y a des cycles, donc H n’est pas sérialisable. 2. Après w1[y], on a r3[y] avant la fin de T1 , donc H n’évite pas les annulations en cascade, donc elle n’est pas stricte. 3. r1[x], r2[y] s’exécutent w1[y] est bloquée en attente de verrou sur y r3[y] s’exécute en partageant le verrou de lecture avec r2[y] w1[z] est bloquée, car T1 est bloquée w2[y] est bloquée à cause de r3[y] c1 est bloquée, car T1 est bloquée w3[z] s’exécute C3 s’exécute et relâche les verrous de T3 w2[y] s’exécute c2 s’exécute et relâche les verrous de T2 w1[y], w1[z] et c1 s’exécutent. Résultat: r1[x] r2[y] r3[y] w3[z] c3 w2[y] c2 w1[y] w1[z] c1 Driss HAZZAF

Solution 1. Les conflits sur x : aucun Les conflits sur y : r2[y]-w1[y], w1[y]-r3[y], w1[y]- w2[y], r3[y]-w2[y]. Les conflits sur z : w1[z]-w3[z]. Le graphe de sérialisation contient les arcs T2 -> T1 , T1-> T3, T1 -> T2, T3 - > T2 . Il y a des cycles, donc H n’est pas sérialisable. 2. Après w1[y], on a r3[y] avant la fin de T1 , donc H n’évite pas les annulations en cascade, donc elle n’est pas stricte. Driss HAZZAF

Solution (suite) 3. l’exécution obtenue par verrouillage à deux phases : r1[x], r2[y] s’exécutent w1[y] est bloquée en attente de verrou sur y r3[y] s’exécute en partageant le verrou de lecture avec r2[y] w1[z] est bloquée, car T1 est bloquée w2[y] est bloquée à cause de r3[y] c1 est bloquée, car T1 est bloquée w3[z] s’exécute C3 s’exécute et relâche les verrous de T3 w2[y] s’exécute c2 s’exécute et relâche les verrous de T2 w1[y], w1[z] et c1 s’exécutent. Résultat: r1[x] r2[y] r3[y] w3[z] c3 w2[y] c2 w1[y] w1[z] c1 Driss HAZZAF