Verrouillage de granularité multiple dans le SGBD

Prérequis – Protocoles de commande d’horodatage
Les différents schémas de contrôle de concurrence ont utilisé différentes méthodes et chaque élément de données individuel comme unité sur laquelle la synchronisation est effectuée. Un certain inconvénient de cette technique est que si une transaction Tje a besoin d’accéder à l’intégralité de la base de données et qu’un protocole de verrouillage est utilisé, alors Tje doit verrouiller chaque élément de la base de données. C’est moins efficace, ce serait plus simple si Tje pourrait utiliser un seul verrou pour verrouiller toute la base de données. Mais, si elle considère la seconde proposition, celle-ci ne doit en fait pas oublier le défaut certain de la méthode proposée. Supposons qu’une autre transaction n’ait besoin que d’accéder à quelques éléments de données d’une base de données. Ainsi, le verrouillage de l’intégralité de la base de données semble inutile. De plus, cela peut nous coûter une perte de simultanéité, ce qui était notre objectif principal en premier lieu. Négocier entre Efficacité et Concurrence. Utilisez la granularité.

Commençons par comprendre ce que l’on entend par granularité.

Granularité – Il s’agit de la taille de l’élément de données autorisé à verrouiller. À présent Granularité multiple signifie diviser hiérarchiquement la base de données en blocs qui peuvent être verrouillés et peuvent être suivis a besoin de ce qui doit être verrouillé et de quelle manière. Une telle hiérarchie peut être représentée graphiquement sous la forme d’un arbre.

Par exemple, considérons l’arborescence, qui se compose de quatre niveaux de nœuds. Le niveau le plus élevé représente l’ensemble de la base de données. En dessous se trouvent des nœuds de type Région; la base de données se compose exactement de ces zones. La zone a des nœuds enfants appelés fichiers. Chaque zone a ces fichiers qui sont ses nœuds enfants. Aucun fichier ne peut couvrir plus d’une zone.

Enfin, chaque fichier a des nœuds enfants appelés enregistrements. Comme précédemment, le fichier se compose exactement des enregistrements qui sont ses nœuds enfants, et aucun enregistrement ne peut être présent dans plus d’un fichier. Par conséquent, les niveaux à partir du niveau supérieur sont :

22 3

Chiffre – Hiérarchie arborescente multi-granularité

Considérez le schéma ci-dessus pour l’exemple donné, chaque nœud de l’arborescence peut être verrouillé individuellement. Comme dans le Protocole de verrouillage à 2 phases, il doit utiliser les modes de verrouillage partagé et exclusif. Lorsqu’une transaction verrouille un nœud, en mode partagé ou exclusif, la transaction verrouille aussi implicitement tous les descendants de ce nœud dans le même mode de verrouillage. Par exemple, si la transaction Tje obtient un verrou explicite sur le fichier Fc en mode exclusif, alors il a un verrou implicite en mode exclusif sur tous les enregistrements appartenant à ce fichier. Il n’est pas nécessaire de verrouiller les enregistrements individuels de Fc explicitement. c’est la principale différence entre Tree-Based Verrouillage et Verrouillage hiérarchique pour plusieurs granularités.

Maintenant que les verrous sur les fichiers et les enregistrements sont simplifiés, comment le système détermine-t-il si le nœud racine peut être verrouillé ? Une possibilité est qu’il recherche dans l’arbre entier, mais la solution annule tout l’objectif du schéma de verrouillage à granularité multiple. Un moyen plus efficace d’acquérir ces connaissances consiste à introduire un nouveau mode de verrouillage, appelé Mode de verrouillage d’intention.

Verrouillage du mode intentionnel –
En plus de S et X modes de verrouillage, il existe trois modes de verrouillage supplémentaires avec plusieurs granularités :

  • Intention partagée (IS) : verrouillage explicite à un niveau inférieur de l’arborescence mais uniquement avec des verrous partagés.
  • Intention exclusive (IX) : verrouillage explicite à un niveau inférieur avec des verrous exclusifs ou partagés.
  • Partagé et exclusif à l’intention (SIX) : le sous-arbre enraciné par ce nœud est verrouillé explicitement en mode partagé et le verrouillage explicite est effectué à un niveau inférieur avec des verrous en mode exclusif.

La matrice de compatibilité pour ces modes de verrouillage est décrite ci-dessous :

33 4

Chiffre – Hiérarchie arborescente multi-granularité

Le protocole de verrouillage à granularité multiple utilise les modes de verrouillage d’intention pour garantir la sérialisabilité. Elle nécessite qu’une transaction Tje qui tente de verrouiller un nœud doit suivre ces protocoles :

  1. Opération Tje doit suivre la matrice de compatibilité des verrous.
  2. Opération Tje doit d’abord verrouiller la racine de l’arbre, et il peut le verrouiller dans n’importe quel mode.
  3. Opération Tje peut verrouiller un nœud en mode S ou IS uniquement si Tje a actuellement le parent du nœud verrouillé en mode IX ou IS.
  4. Opération Tje peut verrouiller un nœud en mode X, SIX ou IX uniquement si Tje a actuellement le parent du nœud verrouillé en mode IX ou SIX.
  5. Opération Tje ne peut verrouiller un nœud que si Tje n’a déverrouillé aucun nœud auparavant (c’est-à-dire, Tje est biphasé).
  6. Opération Tje ne peut déverrouiller un nœud que si Tje n’a actuellement aucun des enfants du nœud verrouillé.

Notez que le protocole à granularité multiple exige que les verrous soient acquis dans l’ordre descendant (de la racine à la feuille), tandis que les verrous doivent être libérés dans l’ordre ascendant (de la feuille à la racine).
A titre d’illustration du protocole, considérons l’arborescence donnée ci-dessus et les transactions :

  • Dites transaction T1 lit l’enregistrement Ra2 dans le dossier Fun. Ensuite, T2 doit verrouiller la base de données, zone A1et Fun en mode IS (et dans cet ordre), et enfin pour verrouiller Ra2 en mode S.
  • Dites transaction T2 modifie l’enregistrement Ra9 dans le dossier Fun . Ensuite, T2 doit verrouiller la base de données, zone A1et fichier Fun (et dans cet ordre) en mode IX, et enfin pour verrouiller Ra9 en mode X.
  • Dites transaction T3 lit tous les enregistrements du fichier Fun. Ensuite, T3 doit verrouiller la base de données et la zone A1 (et dans cet ordre) en mode IS, et enfin pour verrouiller Fun en mode S.
  • Dites transaction T4 lit toute la base de données. Il peut le faire après avoir verrouillé la base de données en mode S.

Notez que les opérations T1T3et T4 peut accéder à la base de données simultanément. Opération T2 peut s’exécuter en même temps que T1mais pas avec T3 ou T4.
Ce protocole améliore simultanéité et réduit la surcharge de verrouillage. Le blocage est toujours possible dans le protocole à granularité multiple, comme c’est le cas dans le protocole de verrouillage à deux phases. Ceux-ci peuvent être éliminés en utilisant certains techniques d’élimination des impasses.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut