Thuis
Contacten

    Hoofdpagina


Chapter 15: Crash resilience and persistent data

Dovnload 241.43 Kb.

Chapter 15: Crash resilience and persistent data



Pagina2/2
Datum25.10.2017
Grootte241.43 Kb.

Dovnload 241.43 Kb.
1   2


write-ahead log: je noteert eerst in log wat je gaat doen en voert dan pas uit (omdat log belangrijker is dan gegevens zelf): verandering in persistent geheugen => hiervan wordt record bijgehouden in log; de log entry bevat een identifier voor de transactie, de oude data waarde en de nieuwe data waarde


figuur: T2 heeft variabele x aangepast van 2 naar 3
checkpoint: alles wordt op dit punt geforceerd weggeschreven naar harde schijf; er wordt
ook genoteerd welke transacties nog actief zijn
helemaal rechts crasht systeem: wat nu? => als transacties nog niet afgewerkt zijn:
mogelijk roll back; log systematisch afwerken vanaf checkpoint
T2 en T4 kan je altijd herdoen, want hele historiek daarvan zit op schijf => REDO T2, T4
T3 en T5 zijn nog niet afgewerkt op het moment van de crash => UNDO
na rollback kunnen we T3 en T5 herdoen => toestand is hersteld

UNDO & REDO moeten idempotente operaties zijn!



15.6.2 Shadowing

Shadowing: laat persistente data ongewijzigd tot de transactie commits, ondertussen wordt er een schaduwstructuur opgebouwd die de persistente data zal vervangen eens de transactie succesvol beëindigd is.



figuur: oude gegevens worden niet overschreven; nieuwe gegevens worden bijgemaakt (nieuwe page voor D en E) => zowel oude als nieuwe metadata zijn aanwezig op schijf, verwijzing naar welke juist is (pointer veranderen bij switch van
oude naar nieuwe data)
(wordt verder niet op ingegaan)
1   2


Dovnload 241.43 Kb.