Récupération et journalisation
Les mécanismes de récupération et de journalisation garantissent l'atomicité et la durabilité des transactions en enregistrant les modifications dans un journal afin qu'après un plantage, le travail validé puisse être rétabli (redo) et le travail non validé annulé (undo).
Definition
La récupération de base de données est le processus de restauration de la base de données à un état cohérent après une défaillance, garantissant que les effets des transactions validées sont durables et que les transactions annulées ou en cours ne laissent aucune trace ; la journalisation est la technique d'enregistrement des actions des transactions dans un journal durable pour rendre cela possible.
Scope
Ce sujet couvre la manière dont une base de données survit aux défaillances : le protocole de journalisation avant écriture (WAL), les informations d'annulation (undo) et de rétablissement (redo), les points de contrôle pour limiter le travail de récupération, et l'algorithme de récupération standard (notamment ARIES) avec ses passes d'analyse, de rétablissement (redo) et d'annulation (undo). Il traite des politiques de gestion de tampon (steal/no-steal, force/no-force) qui déterminent la journalisation requise. Il exclut les protocoles de contrôle de concurrence qui s'exécutent pendant le fonctionnement normal et la validation distribuée, qui sont des sujets connexes.
Core questions
- Pourquoi l'enregistrement de journal doit-il atteindre un stockage durable avant les données qu'il décrit (journalisation avant écriture) ?
- Comment l'annulation (undo) et le rétablissement (redo) restaurent-ils un état cohérent après un plantage ?
- Comment les politiques de gestion de tampon (steal/force) déterminent-elles les exigences de journalisation ?
- Quel rôle les points de contrôle jouent-ils dans la limitation du temps de récupération ?
- Comment l'algorithme ARIES structure-t-il la récupération en passes d'analyse, de rétablissement (redo) et d'annulation (undo) ?
Key concepts
- journalisation avant écriture (WAL)
- journalisation d'annulation (undo) et de rétablissement (redo)
- numéro de séquence de journal
- points de contrôle
- politiques steal/no-steal et force/no-force
- enregistrements de journal de compensation
- passes d'analyse, de rétablissement (redo), d'annulation (undo)
- ARIES
Key theories
- Journalisation avant écriture
- Le protocole WAL exige que les enregistrements de journal décrivant une modification soient forcés vers un stockage stable avant la page de données correspondante, garantissant qu'après un plantage, le système dispose de suffisamment d'informations pour annuler les modifications non validées et rétablir les modifications validées.
- Récupération undo/redo et politiques de gestion de tampon
- La nécessité pour le système d'une annulation (undo), d'un rétablissement (redo) ou des deux dépend des politiques de gestion de tampon : une politique steal (écrire des pages non validées sur disque) nécessite une annulation (undo), et une politique no-force (ne pas forcer les pages validées lors de la validation) nécessite un rétablissement (redo) ; la combinaison courante steal/no-force nécessite les deux.
- ARIES
- ARIES est la méthode de récupération largement adoptée qui utilise la journalisation avant écriture, les numéros de séquence de journal et un algorithme à trois passes (analyse, rétablissement (redo), annulation (undo)) avec des enregistrements de journal de compensation pour prendre en charge le verrouillage à granularité fine et les annulations partielles.
Clinical relevance
La récupération et la journalisation sont ce qui rend la durabilité concrète : elles garantissent qu'une fois qu'un système confirme une transaction telle qu'un paiement ou une commande, ce fait survit aux pannes de courant et aux plantages, et qu'un plantage en cours de transaction ne laisse jamais la base de données dans un état partiellement mis à jour et incohérent.
History
L'étude de Härder et Reuter de 1983 a établi les principes de la récupération orientée transaction et la taxonomie des politiques de gestion de tampon. ARIES, développé par C. Mohan et ses collègues chez IBM et publié en 1992, est devenu l'algorithme de récupération standard de facto, combinant la journalisation avant écriture avec des numéros de séquence de journal et des enregistrements de compensation pour prendre en charge le verrouillage à granularité fine.
Key figures
- C. Mohan
- Jim Gray
- Theo Härder
- Andreas Reuter
Related topics
Seminal works
- mohan1992
- haerder1983
- gray1992
Frequently asked questions
- Pourquoi la journalisation avant écriture est-elle nécessaire ?
- Parce que la base de données peut écrire une page modifiée sur disque avant que la transaction ne soit validée, ou conserver une page validée en mémoire au moment du plantage. Forcer l'enregistrement de journal avant la page de données garantit que, quelle que soit l'action du gestionnaire de tampon, la récupération dispose de suffisamment d'informations pour annuler les modifications non validées et rétablir les modifications validées afin d'atteindre un état cohérent.
- Que réalisent les points de contrôle ?
- Un point de contrôle enregistre périodiquement les transactions actives et vide les informations de gestion dans le journal, offrant à la récupération un point de départ récent et fiable. Sans points de contrôle, la récupération pourrait devoir scanner l'intégralité du journal depuis le début ; les points de contrôle limitent la portée du traitement de récupération, maintenant ainsi le temps de redémarrage gérable.