1 Gestion des Transactions: Survol Chapitre 16. 2 Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.

Slides:



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

Contrôle de la concurrence
GEF 435 Principes des systèmes d’exploitation
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 «
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.
GEF 435 Principes des systèmes d’exploitation
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.
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.
Introduction à la POO: Les classes vs les objets
Initiation aux bases de données et à la programmation événementielle
Les contraintes d’integrité
Sous-programmes Concepts généraux Passage de paramètres Fonctions
Récursivité.
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é Transactions Atomiques Recouvrement à Base de Journal
Systèmes de Gestion de Bases de Données (Relationnelles)
Calcul Relationnel Chapitre 4, Section 4.3.
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Configuration de Windows Server 2008 Active Directory
Bases de données lexicales
Algorithmique et Programmation
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
GESTION DE TRANSACTIONS
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 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
1 Reprise Chapitre Objectifs Vol et forçage: rappel Le log organisation maintient et utilisation Autres structures de données Protocole WAL Points.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
CSI3525: Concepts des Languages de Programmation
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Systèmes de Gestion des Bases de Données Chapitre 1 Professeur: Iluju Kiringa
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
Module 2 : Préparation de l'analyse des performances du serveur
Professeur: Dr. Fadi Malek
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 ++
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
Gérer la sécurité des mots de passe et les ressources
Module 8 : Surveillance des performances de SQL Server
Systèmes de gestion de bases de données NFP 107 Introduction à la concurrence d’accès Second fragment Philippe Rigaux
Les Composants de l’architecture Oracle
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
Gestion des transactions
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
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.
Module 7 : Restauration de bases de données
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Systèmes de Gestion des Bases de Données Chapitre 1 Professeur: Iluju Kiringa
La concurrence Objectifs Les bases Le verrouillage à deux phases
Module 3 : Gestion des fichiers de base de données
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
1 Transactions Support construit à partir des cours de N. Anciaux, L. Bouganim, P. Pucheral, Z. Kehdad, G. Gardarin, P. Borlat (Oracle France) Benjamin.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Développement d’applications Problèmes relatifs aux BD.
Gestion des Transactions: Survol
Gestion des Transactions: Survol
Gestion des Transactions: Survol
Transcription de la présentation:

1 Gestion des Transactions: Survol Chapitre 16

2 Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence de lectures (reads) et écritures (writes). Lexécution simultanée de plusieurs programmes dusagers est essentielle pour une bonne performance du SGBD. Augmenter le débit (throughput) du système (# de transactions complétées à chaque instant) en chevauchant les opérations de I/O et de CPU. Augmenter le temps de réponse (temps de complétion dune transaction) en évitant de voir les courtes transactions (abrégées en transactions) être bloquées derrière les longues transactions. Un programme dutilisateur peut exécuter beaucoup dopérations sur des données puisées dune base de données, mais le SGBD est seulement intéressé aux données qui sont lues (écrites) de (dans) la base de données.

3 Les Propriétés ACID Atomicité : Soit que toutes les actions dune transaction sont exécutées soit aucune nest exécutée. Consistance: Toute transaction qui commence son exécution dans un état consistant de la base de données doit laisser la base de données dans un état consistant. Isolation: Une transaction est protégée des effets des autres transactions exécutant simultanément. Durabilité: Les effets des transactions ayant été validées doivent persister et survivre toute défaillance du système (crash/défaillance des medias).

4 Consistance et Isolation Les utilisateurs soumettent les transactions et peuvent les concevoir comme exécutant isolément. Laccès simultané est réalisé par le SGBD qui entrelace les actions de plusieurs transactions. Leffet net est le même que celui dexécuter les transactions lune après lautre en série. Chaque transaction doit laisser la base de données dans un état consistant si la base de données était dans un état consistant au début de la transaction. Le SGBD vérifie quelques ICs, dépendant des ICs déclarées dans les instructions CREATE TABLE. Au delà de cela, le SGBD ne comprend pas la sémantique des données. Tâche: Soccuper des effets de l entrelacement des transactions ( Contrôle daccès simultané ).

5 Atomicité et Durabilité Une transaction devrait être validée après complétion de toutes ses actions, ou être terminée sans succès: Elle pourrait être abandonnée après quelques actions. Le système peut tomber en panne pendant que des transactions sont entrain dexécuter. Il pourrait y avoir une défaillance des media empêchant les lectures/écritures. Commit = Validation; Abort = Abandon; crash = panne, plantage … Deux propriétés très importantes garanties par le SGBD pour toutes les transactions sont l atomicité et la durabilité. Atomicité: Le SGBD maintient un log de toutes les actions de manière à défaire les actions des transactions abolies. Durabilité: les actions des transactions validées sont écrites sur disque ou (en cas de crash) le système doit refaire les actions des transactions validées qui nétaient pas encore écrites sur disque. Tâche: Soccuper des effets des incidents ( Reprise –Recovery ).

6 Planification des Transactions Plan ( historique ): Entrelacement des actions de différentes transactions. Plan sériel (séquentiel): Plan qui nentrelace pas les actions des différentes transactions. Plans équivalents : Pour toute base de données, deux plan S1 et S2 sont équivalents ssi leffet de lexécution de S1 est identique à leffet de lexécution de S2. Plan sérialisable : Un plan est sérialisable ssi ce plan produit le même résultat que un plan séquentiel des transactions impliquées. (Note: Si chaque transaction préserve la consistance, chaque plan sérialisable préserve aussi consistance. )

7 Contrôle de lAccès Simultané: Exemple Considérez les deux transactions suivantes: T1:BEGIN A=A+100, B=B-100 END T2:BEGIN A=1.06*A, B=1.06*B END Intuitivement, la première transfère $100 du compte B au compte A. La seconde crédite les deux comptes avec un intérêt de 6%. Si les deux sont soumises au même moment, il ny a aucune garantie que T1 exécutera avant T2 ou vice- versa. Cependant le net effet doit être équivalent à celui des deux transactions exécutant en série dans un certain ordre.

8 Exemple (Suite) Considérez cet entrelacement: T1: A=A+100, B=B-100 T2: A=1.06*A, B=1.06*B Ceci est faisable (car sérialisable). Mais pas: T1: A=A+100, B=B-100 T2: A=1.06*A, B=1.06*B Le SGBD voit le 2nd plan de la manière suivante: T1: R(A), W(A), R(B), W(B) T2: R(A), W(A), R(B), W(B)

9 Anomalies des Exécutions Entrelacées Lecture des données non validées (Conflits WR, dirty reads): Lectures non répétables (Conflits RW, « non repeatable reads »): T1: R(A), W(A), R(B), W(B), Abort T2:R(A), W(A), C T1:R(A), R(A), W(A), C T2:R(A), W(A), C

10 Anomalies (Suite) Écrasement des données non validées (Conflits WW, lost updates): T1:W(A), W(B), C T2:W(A), W(B), C

11 Contrôle dAccès Simultané par des Verrous Un SGBD sassure que seuls les plans sérialisables sont permis en utilisant un protocole de contrôle daccès. Protocole Strict Two-phase Locking (Strict 2PL) : Chaque transaction doit obtenir un verrou ( partagé) du genre S sur un objet avant de le lire, et un verrou ( exclusif ) du genre X sur un objet avant de le lire. Tous les verrous sont retenus par une transaction jusquà sa fin complète. Si une transaction retient un verrou X sur objet, aucune autre transaction ne peut obtenir un verrou sur cet objet. Strict 2PL permet cependant des deadlocks, i.e. des cycles de transactions qui attendent que des verrous soient relâchés. Un SGBD doit prévenir ou détecter (et résoudre) des deadlocks.

12 Abandon dune Transaction Si une transaction Ti est abandonnée, toutes ses actions sont défaites. De plus, si Tj lit un objet écrit en dernier lieu par Ti, Tj doit aussi être abandonnée! La plupart des systèmes évitent de tels abandons en cascade en ne relâchant les verrous dune transaction quaprès la validation de celle-ci. Si Ti écrit un objet, Tj ne peut le lire quaprès la validation de Ti. Pour défaire les actions dune transaction abandonnée, un SGBD maintient un log où toute action décriture est enregistrée. Ce mécanisme est aussi utile pour la reprise des activités après une panne: Toutes les transactions actives au moment de la panne sont abandonnées lors de la reprise du système.

13 Support pour les Transactions en SQL SQL fournit un support pour spécifier les comportement des transactions. Une transaction est automatiquement initiée avec chaque instruction SQL (exceptée CONNECT) et est terminé avec soit une instruction COMMIT ou ROLLBACK. SQL99 supporte des transactions avec des points de sauvegarde (savepoints) et des transactions chaînées. On définit un savepoint et on y revient plutard de manière sélective: p.ex.: SAVEPOINT point1... ROLLBACK TO SAVEPOINT point1. On peut valider/abandonner et initier immédiatement une autre transaction: SELECT * FROM Sailors COMMIT AND CHAIN SELECT * FROM Students ROLLBACK Un SGBD peut verrouiller un objet de la BD avec différentes granularités: row-level vs. table-level. La granularité row-level nest pas immune aux fantômes; i.e. une transaction voit deux fois une collection différente dobjets.

14 Transactions en SQL (Suite) SQL fournit un moyen de contrôle pour : Mode daccès: READ ONLY / WRITE ONLY / READ WRITE. Degré disolation: contrôle ce que les autres transactions voient dune transaction donnée. Degré disolation Dirty read Unrepeatable read Fantôme READ UNCOMMITTED Possible Possible Possible READ COMMITTED Non Possible Possible REPEATABLE READ Non Non Possible SERIALIZABLE Non Non Non Exemple: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE

15 Reprise à Partir dune Panne Rappel: Le recovery manager sassure que les transactions sont atomiques et durables. Le transaction manager sassure que les transactions sont consistantes et isolées en utilisant un protocole approprié de verrouillage. Alternatives dans la gestion des pages tampon: Le vol (steal): Les changements effectués sur un objet O par une transaction T peuvent être écrits sur disque avant que T ne soit validée. Le forçage : Forcer tous les changements faits par les transactions validées sur disque. Approche réaliste alliant le vol et le non forçage: Si un cadre modifié est choisi pour remplacement, la page quil contient est écrite sur disque (vol). Les pages changées en mémoire ne sont pas forcées sur disque lors de la validation des transactions associées (non forçage).

16 Reprise à Partir dun Panne: le Log Les actions suivantes sont enregistrées dans le log: Ti écrit un objet : La vieille valeur de lobjet ainsi que la nouvelle valeur. Lenregistrement du log doit aller au disque avant la page modifiée (protocole WAL)! Ti est validée/abandonnée : un enregistrement du log indiquant cette action. Les enregistrements du log sont chaînés ensemble par lidentité des transactions; ainsi il sera facile de défaire un transaction spécifique. Le log est copié plusieurs fois et archivé sur disque/bande. Toutes les activités relatives au log sont traitées de manière transparente par le SGBD.

17 Reprise: Lapproche ARIES Vol et non forçage en 3 phases: Analyse : Scanner le log vers lavant (à partir du plus récent checkpoint ) afin didentifier toutes les transactions qui étaient actives et toutes pages modifiées en mémoire au moment de la panne. Refaire (« Redo ») : Refait tous les changements des pages modifiées dans la mémoire tampon pour assurer que tous les changements inscrits au log sont effectués et écrits sur disque. Défaire (« Undo ») : Les changements effectués sur disque par toutes les transactions actives au moment de la panne sont défaites (en restaurant les valeurs antérieures des objets modifiés, lesquelles valeurs ont été enregistrées dans le log avant la panne). Pour ce faire, le log est scanné darrière en avant. (Une attention particulière doit être faite aux les pannes survenant pendant le processus de reprise!)

18 Résumé Le contrôle de laccès simultané et la reprise sont parmi les plus importantes fonctions dun SGBD. Les usagers nont pas besoin de soccuper de laccès simultané. Le SGBD insère automatiquement les requêtes de verrouillage/déverrouillage dobjets et planifie les actions des différentes transactions de manière à assurer que lexécution qui en résulte est équivalente à une exécution séquentielle de ces transactions. Un log astreint au protocole WAL est utilisé pour défaire les actions des transactions abandonnées et pour restaurer le système à un état consistant après une panne. État consistant : Seulement les effets des transactions validées sont vus par de lextérieur.