8 Lintgrit et la gestion des transactions n

  • Slides: 104
Download presentation
8 L'intégrité et la gestion des transactions n 1. Intégrité sémantique – n 2.

8 L'intégrité et la gestion des transactions n 1. Intégrité sémantique – n 2. Fiabilité (sûreté) – n fautes (pannes) matérielles ou logicielles 3. Contrôle de concurrence – n respect des contraintes d’intégrité concurrence sans interférence indésirable 4. Sécurité (confidentialité) – 23/10/2021 accès autorisés © Robert Godin. Tous droits réservés. 1

8. 1 Concept de transaction n Transaction – – séquence d'opérations exécutées par un

8. 1 Concept de transaction n Transaction – – séquence d'opérations exécutées par un programme opérations pour délimiter n n – 23/10/2021 début de transaction (implicite en SQL) fin de transaction – confirmer (COMMIT WORK en SQL) – annuler (ROLLBACK WORK en SQL) propriétés ACID (DACIL) © Robert Godin. Tous droits réservés. 2

Pseudo-code d'une transaction de transfert bancaire 23/10/2021 © Robert Godin. Tous droits réservés. 3

Pseudo-code d'une transaction de transfert bancaire 23/10/2021 © Robert Godin. Tous droits réservés. 3

8. 2 Propriétés d'une transaction (ACID) n. Atomicité (atomicity) – tout ou rien Scénario

8. 2 Propriétés d'une transaction (ACID) n. Atomicité (atomicity) – tout ou rien Scénario de transfert interrompu 23/10/2021 © Robert Godin. Tous droits réservés. 4

Consistance (consistency) ou cohérence Laisse la BD dans un état cohérent n Déférer la

Consistance (consistency) ou cohérence Laisse la BD dans un état cohérent n Déférer la vérification d ’une contrainte ? n 23/10/2021 © Robert Godin. Tous droits réservés. 5

Isolation Sérialisabilité n Exemple de perte de mise à jour (lost update) n 23/10/2021

Isolation Sérialisabilité n Exemple de perte de mise à jour (lost update) n 23/10/2021 © Robert Godin. Tous droits réservés. 6

Exemple de lecture impropre (dirty read) : cas de sommaire inconsistant Lecture impropre :

Exemple de lecture impropre (dirty read) : cas de sommaire inconsistant Lecture impropre : lecture d ’une donnée « non confirmée » 23/10/2021 © Robert Godin. Tous droits réservés. 7

Propriétés ACID (suite) n. Durabilité (durability) – effets d ’une transaction confirmée doivent durer

Propriétés ACID (suite) n. Durabilité (durability) – effets d ’une transaction confirmée doivent durer malgré pannes n. Légalité – 23/10/2021 respecter les privilèges © Robert Godin. Tous droits réservés. 8

8. 3 État d'une transaction n Début. Transaction – – transaction naît identificateur unique

8. 3 État d'une transaction n Début. Transaction – – transaction naît identificateur unique + informations état actif consommation de ressource (verrouillages, journal, …) n Confirmer. Transaction n – – état confirmé point de confirmation n – confirmer le plus tôt possible pour éviter de monopoliser les ressources Annuler. Transaction ou interruption suite à une erreur (faute) – – n enregistrement persistent (journal) libération de ressources n n choisir le niveau d ’isolation approprié état annulé effets doivent être « défaits » Fin = confirmé ou annulé 23/10/2021 © Robert Godin. Tous droits réservés. 9

Exemples de fautes Erreur locale à une transaction n Annulation par le SGBD (par

Exemples de fautes Erreur locale à une transaction n Annulation par le SGBD (par exemple suite à la détection d'un interblocage) n Erreur du SGBD n Erreur du système d'exploitation n Panne de matériel n etc. n 23/10/2021 © Robert Godin. Tous droits réservés. 10

8. 4 Architecture générale pour la gestion des transactions 23/10/2021 © Robert Godin. Tous

8. 4 Architecture générale pour la gestion des transactions 23/10/2021 © Robert Godin. Tous droits réservés. 11

8. 5 Contrôle de concurrence n Méthode de contrôle de concurrence assurer isolation –

8. 5 Contrôle de concurrence n Méthode de contrôle de concurrence assurer isolation – transactions concurrentes Ordonnancement, histoire, ou exécution (schedule, history, log) – un scénario particulier d'exécution – ex : – n 23/10/2021 © Robert Godin. Tous droits réservés. 12

Ordonnancement séquentiel (serial schedule) n L’une après l’autre 23/10/2021 © Robert Godin. Tous droits

Ordonnancement séquentiel (serial schedule) n L’une après l’autre 23/10/2021 © Robert Godin. Tous droits réservés. 13

Ordonnancement sérialisable (serializable) n Equivalent à un ordonnancement séquentiel (lequel ? ) 23/10/2021 ©

Ordonnancement sérialisable (serializable) n Equivalent à un ordonnancement séquentiel (lequel ? ) 23/10/2021 © Robert Godin. Tous droits réservés. 14

Exemple de perte de mise à jour est non sérialisable n Pas équivalent ni

Exemple de perte de mise à jour est non sérialisable n Pas équivalent ni à T 1, T 2 ou T 2, T 1 – 23/10/2021 solde : $1900 © Robert Godin. Tous droits réservés. 15

8. 5. 1 Enjeux du contrôle de concurrence n Solution bestiale – interdire les

8. 5. 1 Enjeux du contrôle de concurrence n Solution bestiale – interdire les ordonnancements concurrents n mécanisme – n de section critique une transaction longue bloque toutes les autres… Objectif – – 23/10/2021 permettre ordonnancements concurrents gérer les accès concurrents aux mêmes données © Robert Godin. Tous droits réservés. 16

8. 5. 2 Sérialisabilité par permutation Sérialisabilité difficile à vérifier en pratique n Exemple

8. 5. 2 Sérialisabilité par permutation Sérialisabilité difficile à vérifier en pratique n Exemple : ordonnancement chanceux ! n 23/10/2021 © Robert Godin. Tous droits réservés. 17

Sérialisablilité par permutation Éviter de considérer les calculs n Uniquement les lectures/écritures BD n

Sérialisablilité par permutation Éviter de considérer les calculs n Uniquement les lectures/écritures BD n n Opérations non permutables (conflicting) – 23/10/2021 Deux opérations de lecture ou d'écriture dans deux transactions différentes sont non permutables si elles portent sur la même donnée et au moins une des deux est une écriture © Robert Godin. Tous droits réservés. 18

Sérialisablilité par permutation n Ordonnancement sérialisable par permutation (conflict serializable schedule) – 23/10/2021 opérations

Sérialisablilité par permutation n Ordonnancement sérialisable par permutation (conflict serializable schedule) – 23/10/2021 opérations non permutables sont effectuées dans le même ordre relatif que dans un ordonnancement séquentiel © Robert Godin. Tous droits réservés. 19

Sérialisable par permutation : flèches dans la même direction 23/10/2021 © Robert Godin. Tous

Sérialisable par permutation : flèches dans la même direction 23/10/2021 © Robert Godin. Tous droits réservés. 20

Proposition n Sérialisable par permutation sérialisable n Pas l ’inverse 23/10/2021 © Robert Godin.

Proposition n Sérialisable par permutation sérialisable n Pas l ’inverse 23/10/2021 © Robert Godin. Tous droits réservés. 21

Sommaire inconsistant : non sérialisable par permutation 23/10/2021 © Robert Godin. Tous droits réservés.

Sommaire inconsistant : non sérialisable par permutation 23/10/2021 © Robert Godin. Tous droits réservés. 22

Ordonnancement chanceux n Non sérialisable par permutation mais sérialisable 23/10/2021 © Robert Godin. Tous

Ordonnancement chanceux n Non sérialisable par permutation mais sérialisable 23/10/2021 © Robert Godin. Tous droits réservés. 23

8. 5. 3 Test de sérialisabilité par permutation n Graphe de préséance (precedence graph)

8. 5. 3 Test de sérialisabilité par permutation n Graphe de préséance (precedence graph) – un sommet pour chacune des transactions Ti – arc Ti Tj n deux n n opérations non permutables de Ti et Tj opération de Ti précède l'opération de Tj Sérialisable par permutation graphe sans cycle – 23/10/2021 tri topologique produit ordre séquentiel équivalent © Robert Godin. Tous droits réservés. 24

Graphe de préséance sans cycle 23/10/2021 © Robert Godin. Tous droits réservés. 25

Graphe de préséance sans cycle 23/10/2021 © Robert Godin. Tous droits réservés. 25

Sommaire inconsistant : graphe de préséance avec cycle 23/10/2021 © Robert Godin. Tous droits

Sommaire inconsistant : graphe de préséance avec cycle 23/10/2021 © Robert Godin. Tous droits réservés. 26

8. 5. 4 Principales stratégies de contrôle de concurrence n Verrouillage (locking) – –

8. 5. 4 Principales stratégies de contrôle de concurrence n Verrouillage (locking) – – – n blocage temporaire des opérations non permutables verrouillage des objets touchés ~ordre du premier conflit Estampillage (timestamping) – – – ~ ordre des estampilles sinon assassinat Estampille(T) (timestamp) n n Certification (validation) – – – n identifiant unique et ordre (horloge ou compteur) optimiste vérification des conflits à la fin de la transaction (assassinat ) ~ ordre du décès Multiversion – – 23/10/2021 utiliser des anciennes versions éviter blocages ou assassinats © Robert Godin. Tous droits réservés. 27

8. 5. 5 Contrôle de concurrence par verrouillage n Modes de verrouillage – Verrouillage

8. 5. 5 Contrôle de concurrence par verrouillage n Modes de verrouillage – Verrouillage exclusif (X, exclusive lock) n n – Verrouillage partagé (P, share lock (S)) n n Une transaction à la fois En écriture En lecture Matrice de compatibilité 23/10/2021 © Robert Godin. Tous droits réservés. 28

Procédure de verrouillage n Table de verrouillage – 23/10/2021 verrouillages accordés et demandés ©

Procédure de verrouillage n Table de verrouillage – 23/10/2021 verrouillages accordés et demandés © Robert Godin. Tous droits réservés. 29

Procédure de déverrouillage n Politique de gestion des files d ’attentes 23/10/2021 – priorités

Procédure de déverrouillage n Politique de gestion des files d ’attentes 23/10/2021 – priorités ? – éviter famine © Robert Godin. Tous droits réservés. 30

8. 5. 5. 1 Verrouillage en deux phases n Protocole de verrouillage en deux

8. 5. 5. 1 Verrouillage en deux phases n Protocole de verrouillage en deux phases (V 2 P, two phase locking ) n Ver(B, P) ou Ver(B, X) avant Lire(B) n Ver(B, X) avant Écrire(B) n Aucun verrouillage (Ver) après un déverrouillage (Dev) n Proposition – 23/10/2021 V 2 P sérialisable par permutation © Robert Godin. Tous droits réservés. 31

Exemple non V 2 P : cas du sommaire inconsistant 23/10/2021 © Robert Godin.

Exemple non V 2 P : cas du sommaire inconsistant 23/10/2021 © Robert Godin. Tous droits réservés. 32

V 2 P à l ’oeuvre 23/10/2021 © Robert Godin. Tous droits réservés. 33

V 2 P à l ’oeuvre 23/10/2021 © Robert Godin. Tous droits réservés. 33

8. 5. 5. 2 Problèmes dus aux annulations n Interactions – – n mécanismes

8. 5. 5. 2 Problèmes dus aux annulations n Interactions – – n mécanismes de récupérations contrôle de concurrence Annulation par « défaire » – 23/10/2021 écritures pour annuler effets © Robert Godin. Tous droits réservés. 34

Annulation en cascade Annuler T 1 Annuler T 2 en cascade n Cause 23/10/2021

Annulation en cascade Annuler T 1 Annuler T 2 en cascade n Cause 23/10/2021 : lecture impropre © Robert Godin. Tous droits réservés. 35

8. 5. 5. 3 Verrouillage strict et rigoureux en deux phases n Verrouillage en

8. 5. 5. 3 Verrouillage strict et rigoureux en deux phases n Verrouillage en deux phases strict (strict two phase locking) – n Verouillage en deux phases rigoureux (rigourous two phase locking) – n déverrouillages des X après la fin tous les déverrouillages après la fin Proposition 23/10/2021 – V 2 P strict empêche lecture impropre (annulations en cascade) – Corollaire : V 2 P rigoureux empêche lecture impropre © Robert Godin. Tous droits réservés. 36

8. 5. 5. 4 n Récupérabilité Non récupérable 23/10/2021 – Annuler T 1 Annuler

8. 5. 5. 4 n Récupérabilité Non récupérable 23/10/2021 – Annuler T 1 Annuler T 2 en cascade – T 2 est confirmée ! © Robert Godin. Tous droits réservés. 37

Ordonnancement récupérable (recoverable schedule) n si T 1 lit de T 2 – n

Ordonnancement récupérable (recoverable schedule) n si T 1 lit de T 2 – n confirmation de T 1 après confirmation de T 2 Proposition – Empêche lecture impropre récupérable n n ( lecture T 1 après confirmation T 2 confirmation T 1 après confirmation T 2 ) Conséquence – 23/10/2021 V 2 P strict (ou rigoureux) récupérable © Robert Godin. Tous droits réservés. 38

5. 5 Approche agressive ou conservatrice de verrouillage n Procotole conservateur – n verrouillage

5. 5 Approche agressive ou conservatrice de verrouillage n Procotole conservateur – n verrouillage en vrac au tout début Protocole agressif – verrouillage le plus tard possible n plus de concurrence n plus d ’interblocages 23/10/2021 © Robert Godin. Tous droits réservés. 39

8. 5. 5. 6 23/10/2021 Interblocage © Robert Godin. Tous droits réservés. 40

8. 5. 5. 6 23/10/2021 Interblocage © Robert Godin. Tous droits réservés. 40

8. 5. 5. 6. 1 Détection d'interblocage n Graphe qui attend quoi (QAQ, wait-for

8. 5. 5. 6. 1 Détection d'interblocage n Graphe qui attend quoi (QAQ, wait-for graph) – Ti Tj n si n Ti attend pour verrouillage détenu par Tj Proposition – interblocage cycle dans QAQ Choix d ’une victime n Mieux que prévention si peu 23/10/2021 d ’interblocages © Robert Godin. Tous droits réservés. n 41

8. 5. 5. 6. 2 Détection par temps limite n Si trop de temps

8. 5. 5. 6. 2 Détection par temps limite n Si trop de temps en attente – annuler la transaction Annulations parfois inutiles n Problème avec longues transactions n 23/10/2021 © Robert Godin. Tous droits réservés. 42

8. 5. 5. 6. 3 Prévention d'interblocage n 1. Attente ou mort ( «

8. 5. 5. 6. 3 Prévention d'interblocage n 1. Attente ou mort ( « wait-die » ) – Si Ti demande un verrouillage accordé à Tj et Ti est plus vieille (Estampille(Ti) < Estampille(Tj), n n alors Ti peut attendre sinon elle est annulée – n les jeunes ne peuvent attendre les vieux 2. Assassinat ou attente ( « wound-wait » ) – Si Ti demande un verrouillage accordé à Tj et Ti est plus jeune (Estampille(Ti) > Estampille(Tj), n n alors Ti peut attendre sinon Tj est annulée – 23/10/2021 les jeunes ne peuvent bloquer les vieux © Robert Godin. Tous droits réservés. 43

Prévention (suite) n Protocole conservateur – – n demandes de verrouillages en vrac au

Prévention (suite) n Protocole conservateur – – n demandes de verrouillages en vrac au début de la transaction cas particulier : verrouillage hiérarchique Ordre pré-défini – 23/10/2021 demandes selon un ordre pré-défini sur les objets © Robert Godin. Tous droits réservés. 44

8. 5. 5. 7 Verrouillage hiérarchique n T 1 n T 2 23/10/2021 ©

8. 5. 5. 7 Verrouillage hiérarchique n T 1 n T 2 23/10/2021 © Robert Godin. Tous droits réservés. 45

Verrouillage d'intention (intent locking) n Intention de verrouiller un composant 23/10/2021 © Robert Godin.

Verrouillage d'intention (intent locking) n Intention de verrouiller un composant 23/10/2021 © Robert Godin. Tous droits réservés. 46

Exemple de hiérarchie 23/10/2021 © Robert Godin. Tous droits réservés. 47

Exemple de hiérarchie 23/10/2021 © Robert Godin. Tous droits réservés. 47

Modes de verrouillage hiérarchique n Matrice de compatibilité 23/10/2021 © Robert Godin. Tous droits

Modes de verrouillage hiérarchique n Matrice de compatibilité 23/10/2021 © Robert Godin. Tous droits réservés. 48

Protocole de verrouillage hiérarchique en deux phases (VH 2 P, hierarchical two phase locking).

Protocole de verrouillage hiérarchique en deux phases (VH 2 P, hierarchical two phase locking). n 1. Verrouiller parent en mode d'intention avant enfant : – Ver(parent de B, IX) avant Ver(B, X) ou Ver(B, IX) – Ver(parent de B, IX ou IP) avant Ver(B, P) ou Ver(B, IP) n 2. Ver(B, P) ou Ver(B, X) avant Lire(B) ou Lire(un descendant de B) n 3. Ver(B, X) avant Écrire(B) ou Écrire (un descendant de B) n 4. Aucun verrouillage (Ver) après un déverrouillage (Dev) 23/10/2021 © Robert Godin. Tous droits réservés. 49

8. 5. 6 Contrôle de concurrence par estampillage n Principe – si O 1

8. 5. 6 Contrôle de concurrence par estampillage n Principe – si O 1 et O 2 non permutables n – n opérations exécutées dans l'ordre correspondant aux estampilles des transactions sinon zigouiller requérant Information à maintenir par SGBD 23/10/2021 ¨ Estampille-L(B): Estampille maximale des transactions ayant lu B ¨ Estampille-E(B): Estampille maximale des transactions ayant écrit B ¨ seulement les plus récentes © Robert Godin. Tous droits réservés. 50

Exemple qui respecte le protocole - OK : Estampille(T 2) < Estampille(T 1) -

Exemple qui respecte le protocole - OK : Estampille(T 2) < Estampille(T 1) - V 2 P? 23/10/2021 © Robert Godin. Tous droits réservés. 51

Lecture rejetée 23/10/2021 © Robert Godin. Tous droits réservés. 52

Lecture rejetée 23/10/2021 © Robert Godin. Tous droits réservés. 52

Protocole de contrôle de concurrence par estampillage : demande de lecture n Lire(B, .

Protocole de contrôle de concurrence par estampillage : demande de lecture n Lire(B, . . . ) par T – accepter : Estampille-L(B) : = Max(Estampille(T), Estampille. L(B)) 23/10/2021 © Robert Godin. Tous droits réservés. 53

Protocole de contrôle de concurrence par estampillage : demande d ’écriture n Écrire(…, B)

Protocole de contrôle de concurrence par estampillage : demande d ’écriture n Écrire(…, B) par T – 23/10/2021 sinon accepter : Estampille-E(B) : = © Robert Godin. Tous droits réservés. Estampille(T) 54

Sérialiable mais pas toujours récupérable n n Protocole de contrôle de concurrence par estampillage

Sérialiable mais pas toujours récupérable n n Protocole de contrôle de concurrence par estampillage sérialisable par permutation Ordonnancement séquentiel équivalent : n n ordre des estampilles des transactions Exemple non récupérable : 23/10/2021 © Robert Godin. Tous droits réservés. 55

8. 5. 6. 1 Protocole de contrôle de concurrence par estampillage strict n Retarder

8. 5. 6. 1 Protocole de contrôle de concurrence par estampillage strict n Retarder Lire(B, . . . )tant que la dernière transaction ayant écrit B n'est pas terminée – – – 23/10/2021 inclure indicateur de fin de transaction empêche lecture impropre ~verrouillage en lecture © Robert Godin. Tous droits réservés. 56

Exemple strict 23/10/2021 © Robert Godin. Tous droits réservés. 57

Exemple strict 23/10/2021 © Robert Godin. Tous droits réservés. 57

8. 5. 6. 2 Règle d'écriture de Thomas n Écrire(…, B) par T –

8. 5. 6. 2 Règle d'écriture de Thomas n Écrire(…, B) par T – 23/10/2021 ignorer si : © Robert Godin. Tous droits réservés. 58

8. 5. 7 Contrôle de concurrence par certification n Phase 1: lecture – n

8. 5. 7 Contrôle de concurrence par certification n Phase 1: lecture – n écritures locales sans interruption Phase 2: certification – lorsque transaction se termine n n vérifie conflit par rapport à l'ordre des estampilles de fin Phase 3: confirmation – si certifiée n – sinon n 23/10/2021 les écritures sont faites transaction annulée © Robert Godin. Tous droits réservés. 59

8. 5. 8 n Méthode multiversion Principe – Ecrire(…, B) n créer – une

8. 5. 8 n Méthode multiversion Principe – Ecrire(…, B) n créer – une nouvelle version de B (ou annuler) Lire(B, . . . ) n choisir la « bonne » version pour sérialisabilité n efficacement… – – 23/10/2021 versions récentes ! versions récentes dans journal ? © Robert Godin. Tous droits réservés. 60

8. 5. 8. 1 Contrôle de concurrence par estampillage multiversion n Maintenir pour chaque

8. 5. 8. 1 Contrôle de concurrence par estampillage multiversion n Maintenir pour chaque version Bi : ¨ Estampille-E(Bi) ¨ estampille du créateur de Bi ¨ Estampille-L(Bi) ¨ estampille 23/10/2021 maximale des lecteurs de Bi © Robert Godin. Tous droits réservés. 61

Choisir la bonne version n Lire(B, . . . ) par T 23/10/2021 ©

Choisir la bonne version n Lire(B, . . . ) par T 23/10/2021 © Robert Godin. Tous droits réservés. 62

Écrire si possible n Écrire(variable, B) par T 23/10/2021 © Robert Godin. Tous droits

Écrire si possible n Écrire(variable, B) par T 23/10/2021 © Robert Godin. Tous droits réservés. 63

Exemple du multiversion 23/10/2021 © Robert Godin. Tous droits réservés. 64

Exemple du multiversion 23/10/2021 © Robert Godin. Tous droits réservés. 64

Exemple d ’écriture annulée 23/10/2021 © Robert Godin. Tous droits réservés. 65

Exemple d ’écriture annulée 23/10/2021 © Robert Godin. Tous droits réservés. 65

8. 5. 8. 2 Contrôle de concurrence par verrouillage multiversion n Multiversion pour lecteur

8. 5. 8. 2 Contrôle de concurrence par verrouillage multiversion n Multiversion pour lecteur – – n pas de blocage en lecture disponibilité des versions? V 2 P strict pour modifieur – – – pas d ’annulation en écriture verrouillage en lecture et écriture versions non confirmées inaccessibles n n estampille temporaire « infinie » Oracle (mode SERIALIZABLE = false) – – 23/10/2021 ~verrouillage multi-version verrouillage en écriture seulement © Robert Godin. Tous droits réservés. 66

8. 5. 9 Cas des insertions et de suppressions Cas particuliers d ’écriture n

8. 5. 9 Cas des insertions et de suppressions Cas particuliers d ’écriture n Insérer(variable, nom. Donnée. BD) n – n Supprimer(nom. Donnée. BD) – n insérer un nouvel objet supprimer l'objet Cas du verrouillage : – 23/10/2021 Ver(nom. Donnée. BD, X) © Robert Godin. Tous droits réservés. 67

Problème du fantôme 23/10/2021 © Robert Godin. Tous droits réservés. 68

Problème du fantôme 23/10/2021 © Robert Godin. Tous droits réservés. 68

Solutions n Verrouiller à un niveau de granularité plus élevé – n bloque toute

Solutions n Verrouiller à un niveau de granularité plus élevé – n bloque toute la table… Verrouillage indirect – index secondaire sur no. Client n n verrouiller dans l ’index avant d ’accéder aux lignes Généralisation : verrouillage par prédicat – 23/10/2021 implémentation difficile. . . © Robert Godin. Tous droits réservés. 69

8. 5. 10 Autres protocoles de contrôle de concurrence n Autres verrouillages – Structures

8. 5. 10 Autres protocoles de contrôle de concurrence n Autres verrouillages – Structures de données de support n – n index, listes de blocs libres, entête de bloc, … Méta-données Protocoles spécialisés – Verrouillage pour arbre-B n n – Loquet (latch) n 23/10/2021 moins contraignant que V 2 P tirer profit de la structure hiérarchique verrouillages internes de courte durée © Robert Godin. Tous droits réservés. 70

8. 5. 11 Contrôle de concurrence en SQL n 4 niveaux d ’isolation d

8. 5. 11 Contrôle de concurrence en SQL n 4 niveaux d ’isolation d ’une transaction – 0. Lecture impropre ( « READ UNCOMMITTED » ) n permet lecture impropre – – 1. Lecture propre ( « READ COMMITTED » ) n interdit lecture impropre – – n interdit lecture impropre garantit relecture sans modifications visibles – n 23/10/2021 e. g. Ver(X) en écriture et strict 2. Lecture reproductible ( « REPEATABLE READ » ) n – e. g. Ver(X) en écriture mais non strict e. g. V 2 P strict permet fantômes 3. Sérialisable ( « SERIALIZABLE » ) © Robert Godin. Tous droits réservés. 71

SET TRANSACTION n Au début de la transaction : n Demandes explicites de verrouillage

SET TRANSACTION n Au début de la transaction : n Demandes explicites de verrouillage – 23/10/2021 LOCK TABLE, clause FOR UPDATE © Robert Godin. Tous droits réservés. 72

8. 5. 12 Cas du SGBD Oracle n Paramètre SERIALIZABLE = TRUE – –

8. 5. 12 Cas du SGBD Oracle n Paramètre SERIALIZABLE = TRUE – – 23/10/2021 V 2 P rigoureux agressif + verrouillage de table au SELECT © Robert Godin. Tous droits réservés. 73

SERIALIZABLE = FALSE (par défaut) n ~Verrouillage multi-version – – verrouillage en écriture seulement

SERIALIZABLE = FALSE (par défaut) n ~Verrouillage multi-version – – verrouillage en écriture seulement (2 P rigoureux) multiversion en lecture ( « Statement level read consistency » ) n vue sérialisable un SELECT à la fois n ~Niveau 1. Lecture propre ( « READ COMMITTED » ) n Pour Niveau 2. Lecture reproductible ( « REPEATABLE READ » ) 23/10/2021 © Robert Godin. Tous droits réservés. 74

n Utilisation des ROLLBACK SEGMENTS – versions récentes seulement… n ORA-1555: – 23/10/2021 snapshot

n Utilisation des ROLLBACK SEGMENTS – versions récentes seulement… n ORA-1555: – 23/10/2021 snapshot too old mise au point délicate des ROLLBACK SEGMENTS © Robert Godin. Tous droits réservés. 75

Demande de verrouillage au niveau table : LOCK TABLE 23/10/2021 © Robert Godin. Tous

Demande de verrouillage au niveau table : LOCK TABLE 23/10/2021 © Robert Godin. Tous droits réservés. 76

Demande de verrouillage de lignes : clause FOR UPDATE 23/10/2021 © Robert Godin. Tous

Demande de verrouillage de lignes : clause FOR UPDATE 23/10/2021 © Robert Godin. Tous droits réservés. 77

8. 6 Fiabilité et récupération Assurer Atomicité et Durabilité n Principe : redondance contrôlée

8. 6 Fiabilité et récupération Assurer Atomicité et Durabilité n Principe : redondance contrôlée n Approche populaire n – n journal (histoire des transactions) « Ça pourrait aller mieux mais ça coûterai plus cher » – 23/10/2021 architectures parallèles et réparties (non stop) © Robert Godin. Tous droits réservés. 78

8. 6. 1 Types de fautes n Faute de transaction (transaction failure) – Faute

8. 6. 1 Types de fautes n Faute de transaction (transaction failure) – Faute de logique – Faute attribuable au SGBD – Annulation volontaire n Panne système (system crash) n Panne de mémoire secondaire (secondary memory failure) 23/10/2021 © Robert Godin. Tous droits réservés. 79

8. 6. 2 Récupération avec journal n Journal des transactions (log) – trace de

8. 6. 2 Récupération avec journal n Journal des transactions (log) – trace de l'histoire des transactions n Refaire (redo), défaire (undo) n Copies de sauvegarde – 23/10/2021 BDactuelle = BDcopie + Journal © Robert Godin. Tous droits réservés. 80

Types de récupération n Récupération globale – – n Récupération locale – n part

Types de récupération n Récupération globale – – n Récupération locale – n part d ’une copie de sauvegarde refaire les transactions depuis copie défaire les effets partiels de la transaction Récupération système – – 23/10/2021 refaire transactions confirmées défaire les autres © Robert Godin. Tous droits réservés. 81

8. 6. 3 Contenu du journal (Début, id. Transaction) n (Refaire, id. Transaction, Opération)

8. 6. 3 Contenu du journal (Début, id. Transaction) n (Refaire, id. Transaction, Opération) n (Défaire, id. Transaction, Opération) n (Refaire. Défaire, id. Transaction, Opération) n (Confirmer, id. Transaction) n (Annuler, id. Transaction) n 23/10/2021 © Robert Godin. Tous droits réservés. 82

8. 6. 4 23/10/2021 Hiérarchie de mémoire © Robert Godin. Tous droits réservés. 83

8. 6. 4 23/10/2021 Hiérarchie de mémoire © Robert Godin. Tous droits réservés. 83

8. 6. 5 Impact des stratégies de gestion de l'antémémoire n Stratégie risquer –

8. 6. 5 Impact des stratégies de gestion de l'antémémoire n Stratégie risquer – n risquer des écritures avant point de confirmation (matérialisation de (Confirmer, id. Transaction)) Stratégie forcer – 23/10/2021 écritures évacuées avant point de confirmation © Robert Godin. Tous droits réservés. 84

Protocole d'écriture de journal (Write Ahead Logging - WAL) n n Écriture de Défaire

Protocole d'écriture de journal (Write Ahead Logging - WAL) n n Écriture de Défaire avant écriture BD – sinon ne peut pas Défaire – coordination l'antémémoire Écriture Refaire Confirmer – 23/10/2021 avec gestionnaire précède écriture de de sinon ne peut pas Refaire © Robert Godin. Tous droits réservés. 85

Exemple de scénario 23/10/2021 © Robert Godin. Tous droits réservés. 86

Exemple de scénario 23/10/2021 © Robert Godin. Tous droits réservés. 86

8. 6. 6 n Analyse – n déteminer les gagnantes et les perdantes Algorithme

8. 6. 6 n Analyse – n déteminer les gagnantes et les perdantes Algorithme de réupération à deux passes – – n Récupération système Défaire les perdantes à reculons Refaire les gagnantes vers l ’avant Algorithme de récupération à une passe – Combiner Défaire et Refaire à reculons n faire 23/10/2021 seulement si objet non rencontré auparavant © Robert Godin. Tous droits réservés. 87

Exemple à une passe 1. Analyse T 1 : gagnante T 2 : perdante

Exemple à une passe 1. Analyse T 1 : gagnante T 2 : perdante 2. Lecture du journal à reculons 23/10/2021 © Robert Godin. Tous droits réservés. 88

8. 6. 7 Point de vérification n Minimiser le travail à faire – 23/10/2021

8. 6. 7 Point de vérification n Minimiser le travail à faire – 23/10/2021 Refaire T 3 et T 5; Défaire T 2 et T 4 © Robert Godin. Tous droits réservés. 89

Point de vérification Suspendre les transactions actives n 1. Forcer écriture des tampons du

Point de vérification Suspendre les transactions actives n 1. Forcer écriture des tampons du journal n 2. Forcer écriture d'un enregistrement de type (Point. Vérification, Liste. Transactions. Actives) au journal n 3. Evacuer les tampons BD (qui sont sales) n 4. Écrit adresse de l'enregistrement Point. Vérification dans fichier de récupération© Robert Godin. Tous droits réservés. 23/10/2021 n 90

Point de vérification flou (fuzzy checkpoint) Transactions non suspendues pendant le point de vérification

Point de vérification flou (fuzzy checkpoint) Transactions non suspendues pendant le point de vérification n Tampons non évacués depuis le dernier point de vérification sont évacués n – n stocker la liste des blocs mis à jour Retour à l ’avant-dernier point de vérification si le dernier n ’est pas terminé 23/10/2021 © Robert Godin. Tous droits réservés. 91

8. 6. 8 Récupération avec numéro de séquence de journal n n Quelles sont

8. 6. 8 Récupération avec numéro de séquence de journal n n Quelles sont les écritures qui ont été propagées en mémoire persistante par le gestionnaire d ’antémémoire ? Récupération avec numéro de séquence de journal (NSJ, Log Sequence Number (LSN)) – – associer à chaque enregistrement écrit dans le journal un numéro de séquence de journal ajouter au bloc propagé le NSJ de l ’enregistrement Refaire qui correspond à l ’écriture n – algorithme ARIES ( histoire reproductible) n n 23/10/2021 permet de savoir que toutes les écritures jusqu ’au NSJ ont été propagées Refaire : rétablir l ’état exact avant la panne Défaire : les perdantes © Robert Godin. Tous droits réservés. 92

8. 6. 9 Contenu des enregistrements de type Refaire et Défaire n Journalisation physique

8. 6. 9 Contenu des enregistrements de type Refaire et Défaire n Journalisation physique (physical logging) – – n au niveau des bits image de bloc avant / après Journalisation logique (logical logging) – opérations logiques n insérer, 23/10/2021 supprimer, modifier ligne. . . © Robert Godin. Tous droits réservés. 93

8. 6. 10 n Ordonnancement strict (strict schedule) – n Ordonnancement strict interdit de

8. 6. 10 n Ordonnancement strict (strict schedule) – n Ordonnancement strict interdit de lire ou écrire O si une transaction non terminée a écrit O Verrouillage en deux phases strict ordonnancement strict 23/10/2021 © Robert Godin. Tous droits réservés. 94

8. 6. 11 n n Evite de forcer l ’écriture de journal au Commit

8. 6. 11 n n Evite de forcer l ’écriture de journal au Commit Attend que le tampon du journal soit plein – n n n Confirmation en groupe confirmation de plusieurs transactions en même temps Retarde un peu le point de confirmation réel Réduit écritures de journal Evacuations des tampons du journal doivent se faire selon ordre de demandes de confirmation 23/10/2021 © Robert Godin. Tous droits réservés. 95

8. 6. 12 Méthode des pages d'ombre Mise à jour des pages #1 et

8. 6. 12 Méthode des pages d'ombre Mise à jour des pages #1 et #3 23/10/2021 © Robert Godin. Tous droits réservés. 96

Confirmation en une seule écriture atomique 23/10/2021 © Robert Godin. Tous droits réservés. 97

Confirmation en une seule écriture atomique 23/10/2021 © Robert Godin. Tous droits réservés. 97

Ajustement du répertoire courant 23/10/2021 © Robert Godin. Tous droits réservés. 98

Ajustement du répertoire courant 23/10/2021 © Robert Godin. Tous droits réservés. 98

n Avantage – n rien à faire pour récupération locale ou système Inconvénients –

n Avantage – n rien à faire pour récupération locale ou système Inconvénients – – extension aux transactions concurrentes… journal pour récupération globale écritures supplémentaires pour répertoire allocation d ’espace aux nouvelles pages n fragmentation 23/10/2021 interne © Robert Godin. Tous droits réservés. 99

8. 6. 13 Mémoires primaires non volatiles Application à mission critique n Exemple :

8. 6. 13 Mémoires primaires non volatiles Application à mission critique n Exemple : antémémoire non volatile n Coût. . . n 23/10/2021 © Robert Godin. Tous droits réservés. 100

8. 7 Modèles avancés de transaction n Problème des transactions de longue durée –

8. 7 Modèles avancés de transaction n Problème des transactions de longue durée – ex: applications de conception Eviter de perdre une semaine de travail n Eviter de bloquer les autres pendant une semaine n – 23/10/2021 niveau d ’isolation plus faible que sérialisabilité © Robert Godin. Tous droits réservés. 101

8. 7. 1 Transaction imbriquée Transaction composée d'une collection de sous-transactions n Annulation de

8. 7. 1 Transaction imbriquée Transaction composée d'une collection de sous-transactions n Annulation de la dernière sous-transaction suite à une panne n 23/10/2021 © Robert Godin. Tous droits réservés. 102

8. 7. 2 Mécanisme de SAVEPOINT SQL n Mécanisme limité de sous-transaction – –

8. 7. 2 Mécanisme de SAVEPOINT SQL n Mécanisme limité de sous-transaction – – SAVEPOINT nom. Savepoint ROLLBACK TO SAVEPOINT nom. Savepoint Point de récupération intermédiaire n Ne peut pas « COMMIT un SAVEPOINT » n 23/10/2021 © Robert Godin. Tous droits réservés. 103

8. 7. 3 Autres modèles de transaction n Sagas – – – séquence de

8. 7. 3 Autres modèles de transaction n Sagas – – – séquence de transactions T 1, T 2, …, Tn + transactions compensatoires T 1 -1, T 2 -1, …, Tn-1 une saga peut voir les transactions confirmées d ’une autre Flux d'activités (workflow) n Versions explicites n – 23/10/2021 « check in / check out » © Robert Godin. Tous droits réservés. 104