Concurrence

Pages: 21 (5031 mots) Publié le: 9 octobre 2012
LBD - C. Vangenot

13 avril 2005

Le problème

Ingénierie des bases de données
Concurrence
Verrouillage Estampillage

Nécessité d'exécuter les programmes et requêtes de façon concurrente Garantir que l’exécution simultanée de plusieurs programmes se fait correctement
Cohérence de la base de données Exécution correcte des programmes

Exemples de contextes hautement concurrentiels:annuaires téléphoniques (accès en lecture) systèmes de réservation de billets (lecture et mise à jour)

2

Programmes

Transactions

Trois problèmes à éviter
(1) Perte de mise à jour
temps t1 t2 t3 t4 programme P1 Lire A Lire A Ecrire A Ecrire A La mise à jour faite par P1 est perdue
3 4

Transaction = unité de programme exécutée sur SGBD
ordre sql = une transaction

programme P2Programme (PL-SQL par ex.)
Début Transaction

Accès à la base de données (lectures, écritures) Calculs en mémoire centrale
Fin Transaction : COMMIT ou ROLLBACK

Commit : exécution correcte Rollback : exécution incorrecte

validation effacement

Autre exemple de problème à éviter
(2) Données fantômes
temps t1 t2 t3 t4 programme P1 Lire A Ecrire A Lire A Rollback P2 voit une valeur de Aqui n’existe pas
5

Autre exemple de problème à éviter
(3) analyse incohérente
temps t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 programme P1 Lire A sum:=A Lire B sum:=sum+B programme P2
t1 Sum 0 A 40 B 50 C 30 t2 Sum 40 A 40 B 50 C 30 t4 Sum 90 A 40 B 50 C 30

programme P2

Lire C Lire A Transférer 10 de C vers A t7 Sum 90 A 50 B 50 C 20 COMMIT Lire C sum:=sum+C !! Sum aurait dû être = à 120
t10Sum 110 A 50 B 50 C 20
6

Cours Ingénierie des bases de données

1

LBD - C. Vangenot

13 avril 2005

Programmes
Début Transaction

Transactions

Propriétés des transactions : ACID
Atomicité
opérations : tout ou rien

Transaction = unité de programme exécutée sur SGBD Accès à la base de données (lectures, écritures) Calculs en mémoire centrale Fin Transaction : COMMIT ouROLLBACK Commit : exécution correcte Rollback : exécution incorrecte validation effacement
7

Cohérence
BD cohérente avant – BD cohérente après

Isolation
les transactions s’ignorent i.e. chaque transaction doit s'exécuter comme si aucune autre ne s'exécutait en même temps

Durabilité
le résultat acquis par une transaction terminée et validée est garanti même en cas de défaillance du système
8Sérialisabilité
Hypothèses:
Exécution d'une transaction individuelle est correcte Exécution de transactions en série (les unes derrière les autres) est correcte

Exécution des transactions
Exécution en série donc correctes
temps t1 t2 t3 t4 t5 t6 au début : A=25
9

T1
Lire (A,v) v:= A+100 Ecrire (A,v)

T2

Idée: se ramener à une exécution de transactions en série
Concept desérialisabilité

Lire (A,v) v:= A*2 Ecrire (A,v)

T1 puis T2 : A=250
10

Exécution des transactions
Exécution en série donc correctes
temps t1 t2 t3 t4 t5 t6 au début : A=25

Transactions entremêlées
Exécution simultanée (entremêlée) des transactions temps

T1

T2
Lire (A,v) v:= A*2 Ecrire (A,v)

T1

T2

Lire (A,v) v:= A+100 Ecrire (A,v)

T2 puis T1 : A=150
11 12

CoursIngénierie des bases de données

2

LBD - C. Vangenot

13 avril 2005

Exécution des transactions
Exécution entremêlée incorrecte!!!
temps t1 t2 t3 t4 t5 t6

Sérialisabilité
Sérialisabilité: Critère permettant de dire que l'exécution d'un ensemble de transactions (schedule) est correcte
l'exécution de transactions entremêlées est correcte si elle est équivalente à une exécution des mêmestransactions en série (mêmes valeurs de départ et mêmes valeurs finales) on dit que cet ensemble de transactions est sérialisable

T1

T2
Lire (A,v1) v1:= A*2

Lire (A,v2) Ecrire (A,v1) v2:= v2+100 Ecrire (A,v2)

au début : La mise à jour faite par T2 est perdue A=25 A=125
13

14

Exécution entremêlée : sérialisabilité
Le résultat doit être égal à celui d’une exécution en série...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Concurrence
  • concurrence
  • Concurrence
  • La concurrence
  • Concurrence
  • la concurrence
  • Concurrence
  • concurrence

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !