Kapitel 10: Fehlerbehandlung Transaktionen Flashcards

1
Q

Welche Fehlerarten gibt es? (Fehlerklassifikation)

A
  1. Lokale Fehler in einer noch nicht festgeschriebenen Transaktion (Divison:0; User bricht ab)
    • Wirkung muss zurückgesetzt werden
    • R1 Recovery
  2. Fehler mit Hauptspeicherverlust (DB Stürzt ab, Stromausfall)
    • Abgeschlossene TAs müssen erhalten bleiben (R2 Recovery) WINNER
    • Noch nicht abgeschlossene TAs müssen zurückgesetzt werden (R3 Recovery) LOSER
  3. Fehler mt Hintergrundspeicherverlust (Platte geht Kaputt, Partial write)
    • R4 Recovery
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Erkläre die zweistufige Speicherhirarchie

A

DBMS Puffer <–> Hintergrundspeicher (Siehe Tutorium 1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Speicherhirarchien gibt es?

A
  • Ersetzung von Puffer Seiten:
    • no Steal: Seiten die von einer noch aktiven TA verändert wurden, dürfen nicht ausgelagert werden.
    • Steal: Jede nicht fixierte Seite kann jederzeit ausgelagert werden.
  • Einbringung von Änderungen abgeschlossener TAs
    • Force: Änderungen werden beim TA Ende festgeschrieben.
    • No Force: Geänderte Seiten können im Puffer verbleiben und werden erst festgeschrieben, wenn die Seite wieder benötigt wird.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie sehen die Auswirkungen auf die Recovery aus?

A

Steal: undo (jede nicht fixierte Seite kann ausgelagert werden), daher ist undo mit steal möglich

no force: redo (auslagerung erfolgt erst, wenn Seite wieder benötigt wird), daher ist redo mit no force möglich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche Einbringungsstrategien gibt es?

A

Update in Place (komplex, braucht aber wenig Platz):

  • jede Seite hat genau eine Stelle auf dem Hintergrundspeicher
  • Alte Zustand der Seite wird überschrieben

Twin-Block Verfahren:

  • Jede Seite gibt es 2x. Bei jeder Änderung wird nur eine Seite geändert. Bei Final commit beide

Schattenspeicherkonzept:

  • Nur geänderte Seiten werden dupliziert
  • Weniger redundant als Twin-Block
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mit welcher Systemkonfiguration arbeiten wir?

A
  • Steal
    • “dreckige” Seiten können in die DB geschrieben werden
  • No force
    • geänderte Seiten sind möglicherweise noch nicht auf Platte
  • update-in-place
    • Es gibt von jeder Seite nur eine Kopie auf der Platte
  • Kleine Sperrgranulate
    • Auf jeder Seite können verschiedene Tupel verändert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie sieht die Struktur von Log-Einträgen aus?

A

[LSN, TransaktionID, PageID, Redo, Undo, PrevLSN]

[#5 ,T1 ,PB ,B+=50 ,B-=50 , #3]

LSN: Log Sequence Number

  • Eindeutige Kennung des Log Eintrags
  • Monoton aufsteigend vergeben
  • chronologische Reihenfolge von Protokolleinträgen kann ermittelt werden

Transaktionskennung:

  • Transaktionskennung TA der Transaktion, die die ÄNderung durchgeführt hat

PageID:

  • Kennung der Seite, auf der Änderungen vollzogen wurden
  • Wenn eine Änderung mehr als eine Seite betrifft, müssen entsprechend mehrere Log-Einträge generiert werden

Redo:

  • Gibt an wie Änderung nachvollzogen werden kann

Undo:

  • Gibt an wie Änderung rückgängig gemacht werden kann

PrevLSN:

  • Zeiger auf vorherigen Log-Eintrag der jeweiligen Transaktion. Eintrag wird aus Effizienzgründen benötigt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Arten von Protokollierung gibt es und wie kann man diese beschreiben?

A

Physische Protokollierung:

  • Inhalte / Zustände werden protokolliert:
    • before-image: enthält Zustand vor Ausführung der Operation
    • A=950
    • after-image: enthält Zustand nach Ausführung der Operation
    • A=1000

Logische Protokollierung:

  • das before-image wird durch Ausführung des Undo-Codes aus dem after-image generiert.
  • A-=50
  • das after-image wird durch Ausführung des redo-codes aus dem before-image berechnet
  • A+=50

Speicherung der Seiten-LSN:

  • LSN letzte Änderung auf dieser Seite, steht z.b. eine kleinere Nummer weiß ich ob es schon gemacht wurde, oder ob es noch nicht gemacht wurde. LSN erlaubt zu erkennen, ob Änderung schon auf seite ist oder nicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie werden Log-Informationen geschrieben?

A

Log Datei wird 2x geschrieben:

  1. Log-Datei für schnellen Zugriff
    1. R1, R2 und R3 Recovery
  2. Log-Archiv
    1. R4 Recovery

Anordnung in einem Ringpuffer: Eintragen und Ausschreiben (Kreis) dabei wird in Log-Datei udn Log-Archiv geschrieben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Erkläre das WAL-Prinzip

A

Write Ahead Log-Prinzip:

  1. Bevor eine Transaktion festgeschrieben wird (commit) müssen alle “zu ihr gehörenden” Log-Einträge ausgeschrieben werden. (Für Durability: commit wartet auf die Platte)
  2. Bevor eine modifizierte Seite ausgelagert werden darf, müssen alle Log-Einträge, die zu dieser Seite gehören in das temporäre und in das Log-Archiv geschrieben werden. (Force the log: Bei Steal einer geänderten Seite, muss ich sicher sein, dass Log-Eintrag auf PLatte ist. Sonst wäre kein Rollback möglich=
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Warum bei Wiederanlauf zwischn Winner und Loser unterscheiden?

A

Winner: Wurden commitet - müssen übernommen werden.

Loser: Wurden nicht commitet, rollback zwingend notwendig.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Beschreibe die 3 Phasen des Wiederanlaufs

A
  1. Analyse
    • Die temporäre Log-Datei wird von Anfang bis zum Ende analysiert
    • Ermittlung der Winner-Menge von Transaktionen
    • Ermittlung der Loser-Menge von Transaktionen
  2. Wiederholung der Historie (REDO WIN AND LOS)
    • alle protokollierten Änderungen werden in der Reihenfolge ihrer Ausführung in die Datenbasis eingebracht
  3. Undo der Loser (UNDO LOS)
    • Die Änderungsoperationen der Loser-Transaktionen werden in umgekehrter Reihenfolge ihrer ursprünglichen Ausführung rückgängig gemacht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Beschreibung von Kompensationseinträgen

A
  • Kompensationseinträge (CLR compensating log record) für rückgängig gemachte Änderungen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Beispiel für Logeintrag nach abgeschlossenem Wiederanlauf

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Aufbau, Syntax von Kompensationseinträgen (CLR). Warum kein Undo?

A
  • CLR sind durch <> gekennzeichnet
  • Aufbau:
    • <lsn></lsn>
    • <#4‘,T2,PC,C-=100,#7‘,#2>
  • Keine Undo: Weil Roll back zwingend notwendig ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Sicherungspunkt-Qualitäten gibt es?

A
  • a) Tansaktionskonsistenz:
    • Keine TA läuft (sehr selten)
    • Lange Totzeit, da keine TA laufen darf
  • b) aktionskonsistenz
    • Meldet an, ab dann bis zum tatsächlichen Sicherungspunkt keine Befehle mehr.
    • Roll backs der loser erforderlich
    • Abhängigkeit zu Steal
  • c) Unscharf (fuzzy)
    • modifizierte Seiten werden nicht auf Platte geschrieben
    • Nur Kennung wird herausgeschrieben
      • Dirty Pages= Menge der modifizierten Seiten
    • MinDirtyPageLSN = die minimale LSN, deren Änderungen noch nicht ausgeschrieben wurde
    • MinLSN = Kleine LSN der zum Sicherungszeitpunkt aktiven TAs
17
Q

Umgang bei R4 Recovery?

A

Datenbasis-Archiv + Log-Archiv = konsistente Datenbasis