0

Le journal est une séquence d'enregistrements de journal qui conserve des informations sur les activités de mise à jour sur la base de données. Chaque fois qu'une transaction commence, lit, écrit ou valide elle s'enregistre dans le journal avec son action particulière. Donc maintenant, lors de la récupération d'une défaillance, une transaction doit être annulée si la transaction n'a pas été validée et elle doit être refaite si elle a été validée. Mon doute concerne la logique derrière cela. Pourquoi avons-nous besoin de refaire des transactions engagées?Dans la récupération basée sur le journal, pourquoi refaisons-nous les transactions validées?

Référence: Slide 19 - http://codex.cs.yale.edu/avi/db-book/db6/slide-dir/PPT-dir/ch16.ppt

+0

Veuillez commencer par un peu plus de contexte avant de vous plonger dans un problème très spécifique. – deceze

+1

_nous annulons le non-validé, puis rétablissons le commit_ - cela ne sonne pas du tout. – stuartd

+0

@stuartd C'est ce qui est mentionné dans le livre qui est écrit par les professeurs d'université de Yale –

Répondre

0

Il peut être possible pour une transaction T1 que tous ses enregistrements de journaux ont été sortie au stockage stable, mais les mises à jour réelles sur les données sont encore dans la mémoire principale. Si une panne survient à ce stade, la remise à zéro de cette transaction garantit que toutes les mises à jour qui ont été pratiquement perdues en raison d'une défaillance sont désormais enregistrées dans le stockage stable.