La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17."— Transcription de la présentation:

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

2 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke2 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 delles 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 dactions 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

3 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke3 Exemple Le plan suivant nest 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) T1T2 A B Graphe de dépendance

4 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke4 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.

5 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke5 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.

6 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke6 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 quelle 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.

7 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke7 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 lidentité de lobjet 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.

8 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke8 Interblockages (Deadlocks) Interblockage: Cycle des transactions attendant que dautres transactions leur passent des verrous sur un objet donnée. Deux voies de solutions classiques pour traiter les interblockages sont: prévention détection

9 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke9 Prévention des Interblockages Assigner des priorités basées sur des estampilles (timestamps); lestampille 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 à lavance tous les verrous dont elle pourrait avoir besoin.

10 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke10 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 dattendre que Tj relâche un verrou Ensuite vérifier périodiquement sil ny a pas de cycles dans le graphe waits-for.

11 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke11 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) T1T2 T4T3 T1T2 T3

12 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke12 Contrôle dAccè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.

13 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke13 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

14 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke14 Accès Simultané à Base dEstampilles Idée: Donner à chaque objet une estampille de lecture (RTS), une estampille décriture (WTS), ainsi quune estampille de base (TS) au moment où elle commence: Si laction ai dune Xact Ti est en conflit avec une action aj dune 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.

15 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke15 Lorsque une Xact T veut Lire un Objet O Si TS(T) < WTS(O), cela viole lordre 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).

16 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke16 Lorsquune Xact T veut Écrire un Objet O Si TS(T) < RTS(O), cela viole lordre des estampilles par rapport à la Xact qui a écrit O. Doù T est abandonnée puis recommencée. Si TS(T) < WTS(O), cela viole lordre 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 W(A) Commit

17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke17 Estampilles vs.Recouvrabilité 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 quaprès validation. v Malheureusement, les estampilles permettent des plans nonrecouvrables:

18 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke18 Résumé Plusieurs méthodes de contrôle daccè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.

19 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke19 Résumé (Suite) Le contrôle daccès simultané optimiste vise à minimaliser les coûts dun 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 dautres 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.


Télécharger ppt "Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17."

Présentations similaires


Annonces Google