Cours de Bases de données








télécharger 391.04 Kb.
titreCours de Bases de données
page14/14
date de publication23.12.2016
taille391.04 Kb.
typeCours
ar.21-bal.com > droit > Cours
1   ...   6   7   8   9   10   11   12   13   14

Si ~ a un verrou sur D Alors

Lire(D)

Sinon

Tant que il y a un transaction avec un verrou

X sur D Faire

Attendre

Fournir un verrous S a ~ sur D Lire(D)

Protocole avec estampillage~

j Acquisition des verrousi

Pour l'opération d'écriture

Si ~ a un verrou X sur D Alors Ecrire(D)

Sinon

Tant que il y a une transaction avec

un verrou sur D Faire

Si T'~ a déja un verrou S sur D Alors

Transformer S en X

Sinon

Fournir un verrou X sur D a ~ Ecrire(D)

Le but est d'avoir des ordonnancements sérialisables équivalents à l'ordre chronologique des transactions
e A chaque transaction est associée une estampille relative au moment où elle "arrive", i.e T'~ avant T, ~ ST'~) < ST(T,) (l'heure système ou bien un simpIe compteur)
e A chaque objet D de la base sont associées 2 estampilles

On ne dit pas quand est-ce que les verrous sont libérés !!

1. E~ST'(D) : la plus grande des estampilles des transactions qui ont écrit D avec succès

2. L~sT(D) : la plus grande des estampilles des transactions qui ont lu D avec succès
Protocole avec estampillage~

j Protocole avec estampillagel

Supposons que ~ veuille lire D

Si ST(T) > E~sT(D), alors la lecture est autorisée et

L~ST(D) l max{L~ST'(D),ST~)}

Supposons que ~ veuille écrire D
e Si TS~) < L~sT(D) : dans ce cas, cela veut dire qu'il y a une transaction qui est arrivée après T et qui a lu D. T est annulée
e Si TS(T) < E~sT'(D) si on laisse faire cette écriture, alors elle va "écraser" celle faite par une transaction arrivée après T T est annulée

Si ST(T) < E~ST(D), alors T est "annulée" et relancée avec une nouvelle estampille
e Sinon,

- l'écriture est réalisée

- E~sT(D) ' ST(T)

j Protocole avec estampillage~

Soient les transactions T1,T2,T3,T4 et T5 avec les estampilles resp. 1, 2, 3, 4 et 5.

L'ordonnancement suivant représente une situation où T2 et T4 sont annulées

T1 T2 T3 T4 T5

Lire(X)

Lire(Y)

Lire(Y)

Lire(Y)

Ecrire(Y)

Lire(Z)

Ecrire(Z)

Lire(Z)

Lire(Z)

abort

Lire(X)

Ecrire(Z)

abort

Ecrire(X)
y____

___________________ Ecrire(Z)

j Protocole avec estampiIlage~

e L'estampillage permet d'éviter les blocages (les transactions sont exécutées ou bien annulées)

e Il garantit la c-sérialisabilité puisque tous les arcs sont de la forme T " T, avec ST(T)
e Par contre, le problème de récupérabilité persiste. Si T est annulée alors que T, a lu une valeur écrite par T~ alors T, doit aussi être annulée. Si T, a déja validé, alors l'ordonnancement n'est pas récupérable.
jProtocole basé sur la validationî
L'exécution d'une transaction T se fait en 3 phases

Lecture : Les écritures se font dur des "variables

locales"

Protocole basé sur la validationi

Pour faire le test de validité, nous avons besoin de savoir a quels moments ont lieu les différents phases. D'où l'utilisation d'estampilles

1. Début(T~): Le moment où T a débuté

Validation : Tester la validité des écritures (ne violent elles pas la sérialisabilité ?)
Ecriture : Si la validation réussit, alors les écritures sont retranscrites sur la base

Protocole basé sur la validationi

2. Validation(T~): Le moment où T a terminé sa phase précédente
3. Fin(T~): Le moment où T termine la phase d'écriture

La sérialisabilité est testée en se basant sur un estampillage des transactions correspondant a leur estampille de validation, i.e ST(T) = Validation(T).
Exemple d'ordonnancementl
La validation de T, réussit Si pour chaque T t.q

ST(T) 1

Lire(B)
b Fin(T) < Débat(T,), ou bien
Débat(T~) < Fin(T~ < validation(T,) et l'ensemble des données écrites par T est distinct de celui des données lues par T,
Pour le 2ème point:
Les écritures de T n'ont pas d'effet sur les lectures de T~ (elles ont lieu après la fin des lectures de T)
les écritures de T n'ont pas d'effet sur les lectures de T, (T, ne lit aucun objet écrit par T)

Lire(A)



Affieher(A + B)

T2
Lire(E)

B := B - 50

Lire(A)

A := A + 50


Ecrire(E)

Ecrire(A)

Note: La méthode de validation permet d'éviter les cascades de Poli back puisque les lectures ne se font que sur des données persistantes.
Granularité du verrouiIIage~ Granulanté du verrouiIIage~

Nous considérons la hiérarchie suivante

 Nous sommes en présence d'une structure d'arbre de

la forme
Base

Table Table4 Table n

Page

{

Tuple
Permettre aux transactions de verrouiller n'importe quel niveau mais en respectant un nouveau protocole

Avant de verrouiller un objet D, T doit avoir un verrou intentionnel sur tous les ancêtres de D
___'[IPIXI P ]IX[PIXI

IP ~ oui oui oui ~f oui

IX ~ oui f oui ___ ~f ___

P oui __ oui ~

X ~_~_ _ __ PIX oui __ __ 113

49

Page Il Page tm

Tuptelti TupleII2
e Un noeud D peut être verrouillé en P ou IP Si le parent est déja verrouillé en IX ou

D peut être verrouillé en X, PIX ou~ Si le parent de d est verrouillé en IX ou PIX

T peut libérer un verrou sur D si elle ne possède plus de verrous sur les descendants de D

La aussi, on utilise le verrouillage en deux phases

Gestion des bIocages~

Granularité du verrouiIIage~
Exemples

Prévenir vs guérir

1) Prévenir
T1 parcourt R et met a jour quelques tuples

T1 obtient un verrou PIX sur R, a chaque lecture d'un tuple, elle pose d'abord un verrou P, et Si elle a besoin de le modifier, elle transforme le P en X

T2 utilise un index pour lire une partie de R

T2 pose un verrou IP sur R, ensuite elle obtient des verrous P pour chaque tuple qu'elle veut lire

T3 lit la table R en entier

Soit T qui demande un verrou en conflit avec celui déja détenu par T,
e Privilégier les plus anciennes transactions (estampillage):
- ST(T) < ST(T,) ~ T peut attendre T,

- ST(T) > ST(T,) ~ T est annulée
- Si T est relancée avec une nouvelle estampille, alors elle risque d'attendre longtemps!! La relancer avec la même estampille.
- Noter qu'ici, seules les transactions demandeuses sont annulés

e Privilégier la transaction qui détient le verrou

T3 demande un verrou sur R ou bien

- ST(T) est annulée

-ST(T) > ST(T,) alors T attend
Gestion des blocages

Prévenir vs guérir
1) Guérir

Gestion des blocages

Ici, il faut détecter le blocage. Le système maintient un graphe G (N, A) avec

Prévenir vs guérir

Que faire Si un blocage est détecté ?

N les transactions
T ' T, 55 T attend que T, libère un verrou
Quand T demande un verrou détenu par T,, alors l'arc T ' T, est r ajouté au graphe
Il faut annuler une transaction participant au cycle.
Choisir celle qui permet de réduire au maximum le nombre de cycles

T ' T, est supprimé quand T, ne détient plus le verrou demandé par T

Choisir celle qui est la moins proche de son état de validation

Le système est bloqué ssi G contient un cycle

Un algorithme est lancé périodiquement pour tester 'acyclicité
Le problème
La suppression d'ùn tuple ne peut se faire que Si T détient un verrou X sur ce tuple

L'insertion d'un tuple par T, implique la détention d'un verrou X par T, sur ce tuple

T veut supprimer tous les comptes dont le solde est

> 300. Elle verrouille donc tous ces tuples.

T, insère un compte avec un solde > 400. Noter qu'il n'y a pas conflit.

Ensuite, T affiche les comptes dont le solde est > 200. Le nouveau tuple est affiché.

Noter que cette exécution n'est pas équivalente a une exécution en série pourtant l'ordonnancement est c-sérialisable!!

Choisir une transaction qui n'a pas été annulée plusieurs fois

1   ...   6   7   8   9   10   11   12   13   14

similaire:

Cours de Bases de données iconAdministrateur(trice) de bases de données / Intégrateur(trice) d’applications
«Accompagner les transitions agro-écologiques des systèmes et territoire d’élevage») et sur le pôle basmati («Bases de données, modèles...

Cours de Bases de données iconI ] Les différents modèles de bases de données

Cours de Bases de données iconUniversité Sidi Mohamed Ben Abdellah
«pose» sur le IaaS. IL permet d’externaliser l’infrastructure matérielle, mais également des applications middleware : bases de données,...

Cours de Bases de données iconC onsultant(e) système spécialiste O. S. et bases de données / Grenoble...

Cours de Bases de données iconProtection des logiciels et des bases de données

Cours de Bases de données iconM. Bilodeau est un professionnel dynamique, versé dans plusieurs...

Cours de Bases de données iconPour les projets de logiciels et/ou de bases de données, cette déclaration...

Cours de Bases de données iconCours : mat-4172-2 Collecte de données en contexte fondamental

Cours de Bases de données iconAccès sécurisés aux données partout dans le monde avec aprol
«parlantes» sont transférées à la base de données du cloud. Cette méthode basée sur les concepts du fog computing (informatique géodistribuée)...

Cours de Bases de données iconAu risque de refroidir les ardeurs de quelques dsi, le temps semble...
«humeur» des internautes. A nous les connexions vers les sites métiers pour remplir nos bases de données des informations professionnels...








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com