Contrôle de l’Accès Simultané

Slides:



Advertisements
Présentations similaires
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17.
Advertisements

Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
QuickPlace de LOTUS Logiciel générateur de SITE WEB : Installé sur un serveur (grenet), Permet de créer / gérer / utiliser un site privé, De donner des.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
DUT INFORMATIQUE ET GÉNIE INFORMATIQUE UE2 CONNAISSANCES ET COMPÉTENCES COMPLÉMENTAIRES EGO 4 ORGANISATION et GESTION LA CAPITALISATION ET L’ACTUALISATION.
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
Cours COMPOSANTES DES VECTEURS Dimitri Zuchowski et Marc-Élie Lapointe.
Cross-Plateform Cours JavaScript
La technologie des mémoires
Optimisation du délai de transmission dans les réseaux SDN
SYNTHESE COLLECTE D’INFORMATION ET ORIENTATION
Voyage dans le logiciel de présentation de la suite libre.
Equipe Pédagogique Nationale de Secourisme des Sapeurs Pompiers
SNMP - Comment calculer l'utilisation de la Bande passante
INFO 2014 Fichiers et base de données
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
L’Instruction de Test Alternatif
Généralité sur les bases de données
Principes de programmation (suite)
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
2°9 lycée Beauregard à Montbrison
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
Semaine #4 INF130 par Frédérick Henri.
Implantation d’un îlot ou d’une Chaîne de Production
Stabilité des porteurs horizontaux (Poutres)
Notion De Gestion De Bases De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
PROGRAMMATION ET ENSEIGNEMENT
Package R Markdown: Un outil pour générer des pages html avec R Studio
Chapter 12: Structures de données
Contrôle de l’Accès Simultané
DATA WEARHOUSE 1ère année LA: Technologies systèmes d’information
Programmation Orientée Objet
Gestion des Transactions: Survol
Exercice PHP DEUST TMIC
Formation sur les bases de données relationnelles.
Prélude ERP 7 Présentation 19/09/2018 © Gérard Baglin,
Prélude 7 ERP Présentation 15/11/2018 © Gérard Baglin,
Exp. 4: Conservation de la quantité de mouvement
NUMERATION et REPRESENTATION DES NOMBRES
Base de donnée de support
7 Contraintes d’intégrité en SQL
Indexes à Arbres et Indexes à Hachage
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Prélude ERP 7 Présentation 09/12/2018 © Gérard Baglin,
L’écriture d’un article scientifique
Tri Externe Chapitre 13: 13.1—13.5
Algèbre Relationnelle
Plans annuels de l’évaluation pédagogique
Survol du Stockage et de l’Indexage
Le Modèle Entité-Relation (Entité-Association)
Survol du Stockage et de l’Indexage
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Les différents modes de démarrage de Windows
Gestion des Transactions: Survol
Gestion des Transactions: Survol
Chapitre 12 : Notion de fonction
Design, innovation et créativité
ManageEngine ADManager Plus 6
03/05/2019 L’organisation et la gestion des fichiers sur le site collaboratif Martine Cochet 2SitePleiadeGestionFichiers.
Chapter 11: Récursivité Java Software Solutions Second Edition
SQL: Contraintes et Triggers
Algèbre Relationnelle
Bases de Données Distribuées
Python Nicolas THIBAULT
Type Tableau Partie 1 : Vecteurs
Role-Based Access Control (RBAC) Les permissions d’administration
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

Contrôle de l’Accès Simultané Chapitre 17 The slides for this text are organized into chapters. This lecture covers Chapter 19. The slides present the material suitable at the level of a graduate course; concurrency control in B+ Trees, optimistic concurrency control, and multiversion concurrency control are explained in detail. For an introductory undergraduate course, we usually cover only the material in slides 1 to 20. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: Schema Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics

Plans Sérialisables par Rapport aux Conflits Deux actions sont en conflit si elles opèrent sur le même élément de la BD, elles appartiennent à différentes transactions, une d’elles au moins est une action d’écriture. Deux plans sont équivalents par rapport aux conflits si: Ils contiennent les mêmes actions des mêmes transactions. Chaque pair d’actions conflictuelles est ordonnée de la même manière dans les deux plans. Un plan S est sérialisable par rapport aux conflits ssi S est équivalent par rapport aux conflits à un (quelconque) plan séquentiel (sériel). Rappel: plan sérialisable plan recouvrable plan évitant les abandons en cascade

Exemple Le plan suivant n’est pas sérialisable p.r. conflits: Le cycle dans ce graphe révèle le problème. Le résultat de T1 dépend de T2 et vice-versa. T1: R(A), W(A), R(B), W(B) T2: R(A), W(A), R(B), W(B) A T1 T2 Graphe de dépendance B

Graphe de Dépendance Graphe de dépendance (précédence): contient un nœud par Xact; une arête de Ti à Tj si une action de Ti précède et entre en conflit avec une action de Tj. Théorème: Un plan est sérialisable p.r. conflits si et seulement si son graphe de dépendance est acyclique.

2PL Strict: Rappel Protocole ‘’Strict Two-phase Locking’’ (‘’Strict 2PL’’): Chaque Xact 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 Xact jusqu’à sa fin complète. Si une Xact retient un verrou X sur objet, aucune autre Xact ne peut obtenir un verrou sur cet objet. 2PL strict ne permet que des plans dont le graphe de dépendance est acyclique.

2PL Protocole ‘’Two-phase Locking’’ (‘’2PL’’): Chaque Xact 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. Aucune Xact ne peut obtenir de verrous supplémentaires après qu’elle ait relâché un verrou. Si une Xact retient un verrou X sur objet, aucune autre Xact ne peut obtenir un verrou sur cet objet. 2PL permet des plans non recouvrables.

Gestion des Verrous Les requêtes pour verrouiller/déverrouiller sont traitées par le ‘’lock manager’’. Le lock manager maintient une table des verrous, i.e. une table de hachage avec l’identité de l’objet de la base de données comme clé. Une entrée dans la table des verrous contient au moins: # de Xacts présentement verrouillant un objet Type de verrous (S ou X) Pointeur vers la queue des requêtes des verrous Verrouiller et déverrouiller doivent être des opérations atomiques. Promouvoir un verrou: transformer un verrou S en un verrou X. Rétrograder un verrou: transformer un verrou X en un verrou S. Cette approche est la plus répandue dans les systèmes commerciaux.

Interblockages (‘’Deadlocks’’) Interblockage: Cycle des transactions attendant que d’autres transactions leur passent des verrous sur un objet donnée. Deux voies de solutions classiques pour traiter les interblockages sont: prévention détection

Prévention des Interblockages Assigner des priorités basées sur des estampilles (‘’timestamps’’); l’estampille la plus petite a la plus grande priorité: i.e. les vieilles Xacts ont priorité sur les plus jeunes. Supposez que Ti veut un verrou retenu par Tj. Deux polices sont possibles à ce sujet: ‘’Wait-Die’’: Si Ti a une plus grande priorité, Ti attend que Tj finisse; sinon Ti est abandonnée et recommencée ‘’Wound-wait’’: Si Ti a une plus grande priorité, Tj est abandonnée et recommencée; sinon Ti attend Si une transaction recommence, elle doit reprendre son estampille initiale. La prévention est aussi possible en utilisant un 2PL conservateur: chaque Xact obtient à l’avance tous les verrous dont elle pourrait avoir besoin.

Détection des Interblockages Créer un graphe ‘’waits-for’’: Les nœuds sont des transactions Il y a une arête allant de Ti à Tj si Ti est entrain d’attendre que Tj relâche un verrou Ensuite vérifier périodiquement s’il n’y a pas de cycles dans le graphe ‘’waits-for’’.

Détection des Interblockages (Suite) Exemple: T1: S(A), R(A), S(B) T2: X(B),W(B) X(C) T3: S(C), R(C) X(A) T4: X(B) T1 T2 T1 T2 T4 T3 T3 T3

Contrôle d’Accès Simultané Optimiste Le verrouillage est une approche conservatrice et pessimiste dans laquelle on prévient les conflits. Desavantages: Coût de la gestion des verrous Détection/résolution des interblockages Congestion pour les objets très utilisés Si les conflits sont plutôt rares, on pourrait gagner en accès simultané en évitant de verrouiller les objets, mais plutôt en vérifiant la présence des conflits avant que les Xacts ne soient validées.

Le Modèle de Kung-Robinson Dans un protocole optimiste, les Xacts ont trois phases: LECTURE: Les Xacts lisent les données de la base de données, mais procèdent aux changements sur des copies privées des données lues. VALIDATION: Chercher les conflits. ECRITURE: Les copies locales modifiées par les Xacts validées sont rendues publiques. ROOT

Accès Simultané à Base d’Estampilles Idée: Donner à chaque objet une estampille de lecture (RTS), une estampille d’écriture (WTS), ainsi qu’une estampille de base (TS) au moment où elle commence: Si l’action ai d’une Xact Ti est en conflit avec une action aj d’une autre Xact Tj, et TS(Ti) < TS(Tj), alors ai doit être exécutée avant aj. Sinon, recommencer toute Xact qui violerait cet ordre.

Lorsque une Xact T veut Lire un Objet O Si TS(T) < WTS(O), cela viole l’ordre des estampilles par rapport à la Xact qui a écrit O. Ainsi if faut abandonner T et la recommencer avec une nouvelle et plus grande estampille TS. (Si T est recommencé avec la même TS, T échouera à nouveau!) Si TS(T) > WTS(O): Permettre à T de lire O. RTS(O) devient max(RTS(O), TS(T)) Les changements faits sur RTS(O) lors des lectures doivent être écrits sur disque! Cela entraîne des coûts (de même que les incessants recommencements des Xacts).

Lorsqu’une Xact T veut Écrire un Objet O Si TS(T) < RTS(O), cela viole l’ordre des estampilles par rapport à la Xact qui a écrit O. D’où T est abandonnée puis recommencée. Si TS(T) < WTS(O), cela viole l’ordre des estampilles par rapport à la Xact qui a écrit O. (Abandonner T ou appliquer la règle de Thomas) Règle d’écriture de Thomas: On peut ignorer de telles modifications périmées ; pas besoin de recommencer T! (la modification faite par T est effectivement suivie par une autre sans lectures intercalées.) Ceci permet quelques plans sérialisables mais pas sérialisables par rapport aux conflits: Sinon, permettre à T d’écrire O et WST(O) prend la même valeur que TS(T). T1 T2 R(A) W(A) Commit

Estampilles vs.Recouvrabilité Malheureusement, les estampilles permettent des plans nonrecouvrables: La méthode des estampilles peut être modifiée afin de permettre seulement des plans recouvrables; 2 stratégies sont possibles: Stocker toute écriture en tampon jusqu’à la validation de la Xact qui écrit (Mais mettre à jour la WTS(O) lorsque l’écriture est permise.) Bloquer toute Xact T qui lit (où TS(T) > WTS(O)) jusqu’à ce que la Xact qui écrit O soit validée. Similitude avec 2PL: les Xacts qui lisent ne relâchent les verrous qu’après validation.

Résumé Plusieurs méthodes de contrôle d’accès simultané basées sur le verrouillage existent (Strict 2PL, 2PL). Le graphe de dépendance permet de détecter les conflits entre Xacts. Le lock manager gère les verrous sur les objets. Les interblockages peuvent soit être prévenus ou détectés.

Résumé (Suite) Le contrôle d’accès simultané optimiste vise à minimaliser les coûts d’un tels accès dans un environnement dit optimiste dans lequel les lectures sont répandues et les écritures plutôt rares. Le contrôle optimiste engendre cependant d’autres coûts; beaucoup de systèmes commerciaux utilisent le verrouillage. Les estampilles sont une autre alternative à 2PL; elles permettent certains plans sérialisables que 2PL ne permettent pas. La recouvrabilité avec les estampilles est similaire au traitement des écritures dans 2PL.