Acc`es concurrents et Sécurité de fonctionnement

SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-1
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-2
Introduction a` la notion de transaction
Syst`emes de Gestion des Bases de Donn´ees
Partage des ressources dans les syst`emes d’exploitation
Base de donn´ees acc´ed´ee par plusieurs utilisateurs (ou programmes)
Sous-syst`eme de gestion des acc`es concurrents
Acc`es concurrents et S´ecurit´e de fonctionnement
Techniques : Verrouillage, exclusion mutuelle
Ressources partag´ees : Donn´ees et m´eta-donn´ees
Transaction
Nacer Boudjlida
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-3
Transactions : probl`eme 1 : (Non) Atomicit´e
Virement de compte a` compte : C1 = C1-m;
Programme (acc`es, modification)
Acc`es concurrents
Probl`emes
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-4
Transactions : probl`eme 2 : (Non) Isolation
C2 = C2 + m
Transaction T1 : D´ebiter X de N
1)
2)
3)
4)
5)
6)
Transaction T2 : Cr´editer X de M
T1
T2
Si arrˆet du programme avant Ecrire(y) : Incoh´erence
Atomicit´e : “Tout ou rien”
“Tout”
Durabilit´e (Permanence des modifications)
“Rien”
Annulation des modifications
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-5
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
Probl`eme 2 : (Non) Isolation
TR-6
Probl`eme 3 : (Non) Coh´erence
Contrainte : A = B
X = 100; N = 10; M = 50
Ex´ecution avec entrelacement
T1 :
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
100
T1 :
T2 :
T2 :
T1 :
T2 :
T1 :
T2 :
t11 :
t21 :
t12 :
t22 :
t13 :
t23 :
t14 :
t24 :
t15 :
t25 :
t16 :
t26 :
Perte de mise a` jour : X = X-N
t11; t12; t13; t21; t22; t23; t14; t15; t16; t24; t25; t26 : Correct
Isolation : pas d’interf´erence pendant l’ex´ecution
t21; t22; t11; t12; t23; t13; t14; t15; t16; t24; t25; t26 : Incorrect
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-7
Probl`eme 4 : (Non) Permanence des modifications
TR-8
Probl`eme 4 : (Non) Permanence des modifications
a) (Non) R´ep´etabilit´e des lectures
Transaction T1
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
b) Tuples “fantˆomes”
Transaction T2
Transaction T1
Transaction T2
1.
Imprimer(b)
2. Imprimer(V)
3. Supprimer tout a tel que
4.
5. Imprimer(V)
Imprimer(b)
Deuxi`eme impression de
Impressions de T2 : valeurs diff´erentes
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-9
vide
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
Transactions et niveaux d’isolation : SQL 92
TR-10
Transactions et reprise
Niveau 0 : lectures “sales” permises
N´ecessit´e de contrˆoler les acc`es concurrents
- D en cours de modification par T
- Transactions autres que T, avant validation par T :
Causes d’´echec des transactions :
* bloqu´ees en modification
* autoris´ees a` lire D
– Erreur logiciel ou mat´eriel
– Avortement par le sous-syst`eme de gestion de la concurrence
– “Catastrophe naturelle”, etc.
Niveau 1 : lectures “sales” interdites
N´ecessit´e de r´etablir la coh´erence : Reprise
Niveau 2 : non r´ep´etabilit´e des lectures avant validation
– Revenir a` l’´etat coh´erent le plus proche de l’instant de l’incident
– M´ecanisme : Journal ou Log (“Histoire des transactions”)
Niveau 3 (Par d´efaut) : empˆecher les tuples fantˆomes
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-11
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-12
Sch´ema d’ex´ecution des transactions
Sch´ema d’ex´ecution des transactions
Transactions de mise a` jour : s´equences
Validation : rendre effectives les modifications
1. Lecture (Base
Annulation : d´efaire les actions de la transaction
M´emoire centrale)
2. Traitement (en m´emoire centrale)
´
Base)
3. Ecriture
(M´emoire centrale
Diagramme d’´etats d’une transaction
Lire
Ecrire
Politique “du tout ou rien” (Atomicit´e) :
Début de la
transaction
Active
Fin de la
transaction
Partiellement
valide
COMMIT
ROLLBACK
Si toutes les actions se sont bien pass´ees
Alors Valider la transaction (COMMIT)
Sinon Annuler ses effets (ROLLBACK)
Finsi
UHP Nancy 1, FST/MIAE, Dept Informatique
Validée
Echec
Terminée
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-13
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
Journalisation, points de validation et de contrˆole
Sch´ema d’ex´ecution des transactions
Journal :
Validit´e partielle :
– Des techniques testent l’absence d’interf´erences
– Trace des op´erations effectu´ees sur la base
– Des protocoles de reprise s’assurent qu’ils peuvent effectivement
enregistrer les modifications
– Support non volatile + Archivage p´eriodique
Types d’informations du journal, pour chaque transaction :
–
Parfois : Annulation/R´e-ex´ecution (UNDO/REDO) d’une op´eration
–
d´ebut transaction, identification de T ;
e´ criture, identification de T, donn´ee concern´ee, ancienne valeur,
nouvelle valeur ;
–
lecture, identification de T, donn´ee concern´ee
–
COMMIT, identification de T .
a Certains
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-15
a
;
syst`emes ne conservent pas de trace des op´erations de lecture.
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
Journalisation, points de validation et de contrˆole
TR-16
Journalisation, points de validation et de contrˆole
Points de contrˆole
Point de validation :
– Instant de journalisation de
TR-14
– Inscrits p´eriodiquement dans le Log
COMMIT, identification de T
– P´eriode : intervalle de temps, nombre donn´e de mise a` jour ou
combinaison des deux
– Les actions de T ont e´ t´e r´eussi
´
– + Ecritures
dans le journal r´eussies
– Prise de point de contrˆole :
1.
2.
3.
4.
– Au-del`a de ce point : T est valide et ses MaJ sont permanentes
– En cas d’incident : le syst`eme sait quoi
annuler (“histoire en arri`ere”)
relancer, e´ ventuellement (“histoire en avant”)
UHP Nancy 1, FST/MIAE, Dept Informatique
les actions des transactions dont le point de validation dans le
journal pr´ec`ede un point de contrˆole pourront
ne pas eˆ tre r´e-ex´ecut´ees en cas d’incident
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-17
Points de validation et Points de contrˆole
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
c [email protected]
TR-18
Points de validation et Points de contrˆole
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-19
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-20
S´erialisabilit´e et plan d’ex´ecution
Transactions : S´erialisabilit´e et plan d’ex´ecution
A et I : par la m´ethode de reprise
Gestion de la concurrence fond´ee sur la s´erialisabilit´e :
C : par le programmeur et le sous-syst`eme d’int´egrit´e
L’ex´ecution concurrente de n transactions doit eˆ tre e´ quivalente
D : par les m´ecanismes de reprise et de contrˆole de la concurrence
a` (avoir le mˆeme effet pour chaque transaction que)
S´erialisabilit´e : par le contrˆole de la concurrence
leur ex´ecution s´equentielle
Plan d’ex´ecution
(ou schedule) de n transactions :
Propri´et´es (ACID) a` assurer par un g´erant de transactions :
Ordre sur les op´erations des transactions tel que pour toute
1. Atomicit´e : politique du “tout ou rien” ;
transaction
dans
2. Coh´erence : satisfaction des contraintes d’int´egrit´e ;
3. Isolation : pas d’interf´erence entre les transactions ;
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-21
pr´ec`ede une op´eration
dans
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-22
Contrˆole de la concurrence : Verrouillage
Ex´ecution s´equentielle = Succession = Plan correct
des transactions
pr´ec`ede aussi
UHP Nancy 1, FST/MIAE, Dept Informatique
S´erialisabilit´e et plan d’ex´ecution
Un plan d’ex´ecution
, si une op´eration
Possibilit´e d’entrelacement des transactions
non unique
n’autoriser que les plans d’ex´ecution corrects
4. Durabilit´e : permanence des modifications effectu´ees.
UHP Nancy 1, FST/MIAE, Dept Informatique
de
alors
Verrou : Variable associ´ee a` un granule et dont la valeur indique le type
d’op´eration possible sur un granule
est une
succession (ou serial schedule) s’il existe une permutation
Granule : unit´e de verrouillage
de (1, . . . , n) telle que P
– Base, Relation, Partie de relation, etc.
Ex´ecution s´erialisable : Plan correct
Une ex´ecution de
elle donne, pour chaque
Petite taille :
est s´erialisable si et seulement si
, le mˆeme r´esultat qu’une succession
(+)
degr´e concurrence
(-)
temps de son contrˆole
Probl`eme : n’autoriser que les ex´ecutions s´erialisables
Grande taille :
– Protocoles pessimistes : verrouillage, estampillage
(-)
– Protocoles optimistes : contrˆole a` la fin d’une transaction
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-23
Contrˆole de la concurrence : Types de verrous
temps d’attente
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-24
Contrˆole de la concurrence : Types de verrous
1. Verrou binaire :
3. Verrou d’intention :
Deux e´ tats : Libre Occup´e
Transaction demande un verrou de mise a` jour
avec intention d’´ecriture
(-) Une seule transaction d´etient un granule
verrou de lecture
Compatibilit´e :
2. Verrou partag´e (Share) et verrou exclusif (Exclusive) :
Partag´e
Exclusif
Mise a` jour
En mise a` jour : Un acc`es [+ des attentes]
Partag´e
Oui
Non
Non
Compatibilit´e des verrous :
Exclusif
Non
Non
Non
Mise a` jour
Oui
Non
Non
Acc`es multiples en lecture
Partag´e
Exclusif
Partag´e
Exclusif
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-25
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-26
Verrouillage et Interblocage
Gestion des transactions : Verrouillage a` deux phases
Two Phase Locking Protocol : le plus souvent implant´e
Attentes mutuelles
1. Phase 1 (expansion) : acquisition
2. Phase 2 (r´etr´ecissement) : lib´eration et plus aucune autre acquisition
Pr´evention : Imposer a` toute transaction de verrouiller en avance tous
les e´ l´ements dont elle a besoin et n’apposer aucun verrou si un de ces
e´ l´ements n’est pas libre
Garantie de la s´erialisabilit´e
D´etection : Cycle dans un graphe d’attente
Mais verrouillage
– Nœuds : Transactions
Risques :
1. Interblocage (Deadlock)
– Arc
2. Famine (Livelock)
– Pr´esence de cycle :
1. Tuer une transaction
2. D´efaire ses actions
3. Lib´erer ses ressources
Note : Two Phase Locking strict
UHP Nancy 1, FST/MIAE, Dept Informatique
: T1 attend un granule d´etenu par T2
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-27
Verrouillage, Interblocage et Famine
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-28
Contrˆole de la concurrence : Estampillage
Exemple d’interblocage :
Estampille : Identifiant de transaction (date de d´ebut)
Technique fond´ee sur un ordre sur les estampilles : s´erialisabilit´e sans
interblocage
– Plan d’ex´ecution s´erialisable s’il se conforme a` l’ordre
– Succession e´ quivalente = transactions ordonn´ees sur les estampilles
Granule
acc´ed´e
Famine : Attente infinie
Actions sur
– Exemple : Priorit´e toujours aux mˆemes transactions
estampill´ees
Actions estampill´ees
Rollback
– Solutions : Priorit´es dynamiques ou FIFO
UHP Nancy 1, FST/MIAE, Dept Informatique
“marqu´e” par la date de la derni`ere transaction qui y a
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-29
Contrˆole de la concurrence : Techniques “optimistes”
: autoris´ees
: violation de la s´erialisabilit´e
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
c [email protected]
TR-30
Reprise en cas d’incident (Recovery)
Reconstruire un e´ tat coh´erent a` partir “du pass´e” (Log)
Pas de contrˆole pendant l’ex´ecution des transactions
´ le plus proche possible de l’instant de l’incident
Etat
Mises a` jour locales a` la transaction
Fin de transactions : test de non violation de la s´erialisabilit´e
Adapt´ees aux transactions ayant peu d’interf´erence
Strat´egie de reprise d´epend de la gravit´e de l’incident
1. Reprise “`a foid : si d´egˆats importants
(a) Charger une sauvegarde de la base
(b) Re-ex´ecuter les transactions valides des journaux
2. Reprise “`a chaud” : D´efaire [et refaire] des actions
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-31
Reprise “`a chaud”, Technique 1 : Mise a` jour diff´er´ee
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-32
Reprise “`a chaud”, Technique 1 : Mise a` jour diff´er´ee
Mise a` jour effective apr`es le point de validation de la transaction
Modifications de donn´ees “au brouillon” (copies)
Cas e´ chec : base inchang´ee
Cas succ´es : Substitution Copie/“Original” (Shadow paging)
Cas incident au moment de la substitution : Refaire certaines actions de
transactions valid´ees
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-33
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-34
Write Ahead Log Protocol
Reprise “`a chaud” : Technique 2 : Mise a` jour imm´ediate
Journalisation des modifications avant e´ criture dans la base avant le
point de validation
Write Ahead Log Protocol :
– Implant´e dans la plupart des SGBD
– Permet la reprise mˆeme en cas d’incident entre l’´ecriture dans le
journal et l’´ecriture dans la base
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-35
WAL et reprises
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-36
Gestion des transactions : un peu de Th´eorie
Cas reprise a` chaud : Annuler les transactions non valid´ees (cf. Log)
Transaction (A.C.I.D.)
Cas reprise a` froid :
Validation (COMMIT)
1. Charger une base coh´erente (exemple : B1)
Annulation (ROLLBACK)
2. Charger les journaux ad´equats (exemple : J2, J3)
Journalisation (LOG)
3. R´e-ex´ecuter automatiquement les transactions valid´ees
S´erialisabilit´e : Ex´ecution concurrente de n transactions “´equivalente”
a` une ex´ecution s´equentielle
Remarque : cascade de ROLLBACK
– Rollback T1
– T2 a utilis´e des valeurs modifi´ees par T1
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-37
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
Gestion des Transactions : un peu de Th´eorie
TR-38
1- Transactions : D´efinitions
Transaction : S´equence indivisible d’actions
1. Transaction : D´efinitions et probl`emes
Fin d’une transaction par :
2. Notion de s´erialisabilit´e
– Succ`es/Validation : Effets de ses op´erations sur les objets
deviennent d´efinitifs ;
´
: Annulation des effets sur les objets.
– Echec/Abandon
3. M´ethodes de contrˆole de la concurrence
´ enements pour un syst`eme transactionnel :
Ev´
– Op´erations (lire, e´ crire);
– Valider/Annuler.
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-39
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
1- Transactions : D´efinitions
TR-40
1- Transactions : D´efinitions
Ex´ecution concurrente ou histoire d’un ensemble
Transaction
de transactions :
´ enements associ´es
= Ev´
:
– Ordre partiel sur les
– Ordre total sur les op´erations de
1.
;
2.
: Ordre partiel sur
3. L’ordre
qui concernent un mˆeme objet
;
est conserv´e dans
:
4. Les op´erations sur un mˆeme objet sont totalement ordonn´ees :
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-41
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-42
2.1- Ex´ecution s´erialisable
2- Notion de S´erialisabilit´e
´
S´erialisabilit´e : Equivalence
ex´ecution concurrente, ex´ecution
s´equentielle
D´efinitions formelles
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
Techniques et m´ethodes
Plan :
Ex´ecution s´erialisable :
Une ex´ecution concurrente de transactions valid´ees est
s´erialisable si et seulement si il existe une ex´ecution en s´erie
e´ quivalente
Ex´ecution en s´erie (serial schedule) : Si pour tout couple
de
transactions, tous les e´ v´enements de l’une pr´ec`edent ceux de l’autre
dans l’ordre .
1. Ex´ecution s´erialisable
2. Ex´ecution s´erialisable commutable
Ex´ecutions e´ quivalentes : Deux ex´ecutions d’un ensemble T de
transactions sont e´ quivalentes si et seulement si,:
3. Ex´ecution s´erialisable stricte
4. Conflits et graphe de d´ependances
1. elles sont constitu´ees des mˆemes e´ v´enements ;
5. Modes de mise a` jour
2. elles produisent le mˆeme e´ tat final des objets et les mˆemes r´esultats
pour les transactions.
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-43
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
2.1- Ex´ecution s´erialisable : Exemple
2.1- Ex´ecution s´erialisable : Exemple
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-45
UHP Nancy 1, FST/MIAE, Dept Informatique
TR-46
2.2- Ex´ecution s´erialisable commutable
Cas particulier d’ex´ecution s´erialisable
sur un objet
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
2.2- Ex´ecution s´erialisable commutable
Deux op´erations
TR-44
La Composition :
–
commutent si :
, e´ tat initial de ,
–
a le mˆeme effet que
sont commutatifs si :
Plus formellement :
–
: effet de
–
:
sur , e´ tant donn´e
1.
;
2.
Effet sur T de l’ex´ecution de
sur
a`
Param`etres/Valeurs retourn´es par
3.
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-47
2.2- Ex´ecution s´erialisable commutable
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-48
Une ex´ecution commutable est s´erialisable : il existe toujours une
ex´ecution en s´erie e´ quivalente a` l’ex´ecution commutable (c’est
l’ex´ecution en s´erie des transactions dans l’ordre de leurs
validations).
Remarques :
1. Commute(lire(x), lire(x)) : toujours
), e´ crire(
c [email protected]
B.2.2- Ex´ecution s´erialisable commutable (fin)
Notation : Commute
2. Commute(´ecrire(
UHP Nancy 1, FST/MIAE, Dept Informatique
)) si
Ex´ecution de transactions valid´ees commutable si et seulement si :
Exemple :
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-49
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
2.3- Ex´ecution s´erialisable stricte
TR-50
2.3- Ex´ecution s´erialisable stricte (fin)
Cas particulier d’ex´ecution commutable ;
Ex´ecution stricte caract´eris´ee par :
Op´erations limit´ees a` lire, e´ crire ;
1. D`es que lit un objet, d’autres transactions peuvent le lire
mais pas l’´ecrire avant la fin de ;
Sans exploitation des param`etres, seules (lire, lire) commutent ;
2. D`es que e´ crit un objet, aucune transaction ne peut le lire
ou l’´ecrire tant que n’est pas termin´ee.
De la d´efinition d’une ex´ecution commutable, on a :
–
Remarque :
–
– G´en´eralisable a` d’autres op´erations de consultation (
modification ( e´ crire) ;
–
– Exploitation de la seule la commutativit´e des op´erations de
consultation.
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
c [email protected]
TR-51
lire) et de
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-52
2.4- Conflits et Graphe de d´ependances
2- Notion de S´erialisabilit´e : Plan
Graphe de d´ependances : Approche th´eorique permettant de valider les
m´ethodes pratiques de contrˆole de la concurrence
Plan :
1. Ex´ecution s´erialisable
3. Ex´ecution s´erialisable stricte
et
que
4. Conflits et graphe de d´ependances
Graphe de d´ependances :
2. Ex´ecution s´erialisable commutable
sont en conflit s’il existe x acc´ed´e par
.
(
5. Modes de mise a` jour
entre
et
d´epend de
et si
et
et
) si et seulement si un conflit existe
S´erialisabilit´e et Graphe de d´ependances :
Si le graphe de d´ependances ne comporte pas de circuit, alors
l’ex´ecution est s´erialisable.
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
c [email protected]
TR-53
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-54
2.5- Modes de mise a` jour et journalisation
2.4- Conflits et Graphe de d´ependances : Exemple
Annulation d´epend du mode de mise a` jour
1. Mise a` jour diff´er´ee :
Modification sur une copie des objets (“brouillon”)
Validation par recopie du “brouillon”
2. Mise a` jour imm´ediate :
Modification “directement” sur les objets
Effets peuvent eˆ tre visibles avant la fin de la transaction (dirty
reads)
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-55
2.5- Modes de mise a` jour et journalisation
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-56
Gestion des Transactions : un peu de Th´eorie
cf. Write Ahead Log Protocol
1. Transaction : D´efinitions et probl`emes
2. Notion de s´erialisabilit´e
3. M´ethodes de contrˆole de la concurrence
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-57
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-58
3- M´ethodes pessimistes de contrˆole de la concurrence
3- M´ethodes de contrˆole de la concurrence
1. Estampillage : Ordre sur des dates
1. Pessismiste : Contrˆole continu
D´etection des conflits au fur et a` mesure de leur apparition
2. Verrouillage : Ordre par attente
Si conflit : Abandon ou mise en attente de transactions
2. Optimiste : Contrˆole par certification
` la fin de la transaction : Violation de la s´erialisabilit´e ?
A
Adapt´e pour des transactions ayant peu d’interf´erences
Mal adapt´e avec mises a` jour imm´ediates : des transactions peuvent
utiliser des objets modifi´es par une transaction qui sera annul´ee
Risque de cascades d’abandons)
(
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-59
3.1- Verrouillage et contrˆole de la concurrence
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-60
3.2- Estampillage (basique) et contrˆole de la concurrence
Verrous Exclusifs/Partag´es/++ : S´erialisabilit´e non assur´ee
Estampille : Date associ´ee a` chaque transaction
cf. Types de verrous et compatibilit´e
Mˆeme estampille pour une trasnsaction et chacune de ses op´erations
cf. Protocole de Verrouillage a` deux phases (Two-Phase Locking
Protocol) er s´erailisabilit´e
Objets marqu´es par l’estampille de la derni`ere transaction qui y a
acc´ed´e
cf. Probl`emes
Ordre de s´erialisation : Ordre total sur les estampilles
– Interblocage (Deadlock) : Graphe d’attente
D´ependance a priori :
– Famine (Livelock)
.
Mise en œuvre : Association a` chaque objet
1. R(x) : Estampille de lecture
2. W(x) : Estampille d’´ecriture
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-61
3.2.1- Estampillage et Mise a` jour imm´ediate
TR-62
3.2.1- Estampillage et Mise a` jour imm´ediate
b. Conflits (lire, e´ crire) et (´ecrire, e´ crire) :
a. Conflit (´ecrire, lire) : Lecture de x par T estampill´ee t
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-63
3.2.1- Estampillage et Mise a` jour imm´ediate : Exemple
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-64
3.2.1- Estampillage et Mise a` jour imm´ediate : Exemple
T1 estampill´ee 10; T2 estampill´ee 15
Histoire d’une ex´ecution concurrente :
lire
(x); lire
(y); e´ crire
(y); e´ crire
(x).
W(x) = 8; R(x) = 12
W(y) = R(y) = 8
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-65
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
SGBD : Acc`es concurrents et S´ecurit´e de fonctionnement
TR-66
Concurrence et Reprise : Conclusion
3.2.2- Estampillage et Mise a` jour diff´er´ee
Modification de l’estampille a` la fin de la transaction
S´erialisabilit´e et ACID“-it´e”
En cas de conflit (´ecrire, e´ crire) : Validation et e´ criture dans l’ordre des
estampilles.
Verrouillage a` deux phases (Interblocage)
Write Ahead Log Protocol
Shadow Paging
Autres m´ethodes : Utilisation de la s´emantique (typage) des op´erations.
Reprise en cas d’incident
S´ecurit´e par duplication (Mirroring)
Organisation de l’exploitation des bases (officier de s´ecurit´e)
Transactions plates : mˆeme comportement sur tous les SGBD
Transactions imbriqu´ees : pas de mod`ele d’ex´ecution universel
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]
UHP Nancy 1, FST/MIAE, Dept Informatique
c [email protected]