mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-25 13:09:32 +01:00
Transaktionen Kapitel um Übungen erweitert. Rename
This commit is contained in:
parent
b849313663
commit
c9b437db24
@ -320,8 +320,26 @@ wiederherzustellen.
|
|||||||
\end{itemize}
|
\end{itemize}
|
||||||
}
|
}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsubsection{Physische Protokollierung}
|
\subsubsection{Backward-/Forward Recovery}
|
||||||
\vspace{5pt}
|
\begin{enumerate}
|
||||||
|
\item{ Forward:\\
|
||||||
|
Änderungen sind noch nicht in DB, aber schon in Log. Bevor
|
||||||
|
diese auf DB geschrieben werden, wird ein Commit-Record in
|
||||||
|
Log File geschrieben. Falls was schief geht und der Commit Record noch da ist, werden alle diese Änderungen wiedehrolt und ansonsten nichts getan, da alte Version noch in DB steht.}
|
||||||
|
\item{ Backward:\\
|
||||||
|
Ins Log kommt immer \textbf{alte} Version eines Wertes. Bei
|
||||||
|
einem Commit wird gewartet bis alle neuen werte in DB stehen.
|
||||||
|
Danach erst wird CommitRecord erstellt und eine Bestätigung
|
||||||
|
signalisiert.
|
||||||
|
Bei Verlust werden entweder alte Daten hergestellt oder nichts getan.}
|
||||||
|
\end{enumerate}
|
||||||
|
\paragraph{Vergleich}
|
||||||
|
\begin{itemize}
|
||||||
|
\item{ Forward Recovery: Hoher Speicherplatzbedarf! Daten werden erst nach Beendigung der TA in DB geschrieben und deswegen solange in Puffer behalten}
|
||||||
|
\item{ Backward-Recovery: Hoher I/O Aufwand! Alle Änderungen müssen vor TA-Ende in Datenfiles stehen.}
|
||||||
|
\end{itemize}
|
||||||
|
\subsubsection{Undo-/Redo Logging}
|
||||||
|
Verbesserung zu Backward-/Forward Recovery.
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[scale=0.8]{protokoll.png}
|
\includegraphics[scale=0.8]{protokoll.png}
|
||||||
@ -335,8 +353,8 @@ Zustände vor bzw nach einer Änderungen werden protokolliert:
|
|||||||
\item für jede veränderte Seite (3) wird jeweils eine
|
\item für jede veränderte Seite (3) wird jeweils eine
|
||||||
vollständige Kopie vor (2) und nach (4) der Änderung in den Log
|
vollständige Kopie vor (2) und nach (4) der Änderung in den Log
|
||||||
geschrieben.\\
|
geschrieben.\\
|
||||||
+ schnelle Recovery\\
|
$+$ schnelle Recovery\\
|
||||||
- hoher E/A Aufwand
|
$-$ hoher E/A Aufwand
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\paragraph{Optimierungen}
|
\paragraph{Optimierungen}
|
||||||
Um Log-Aufwand zu reduzieren nur geänderte \textbf{Teile einer Seite}
|
Um Log-Aufwand zu reduzieren nur geänderte \textbf{Teile einer Seite}
|
||||||
@ -353,7 +371,7 @@ Ma"snahmen zur Begrenzung des REDO Aufwands nach Systemfehlern (alle
|
|||||||
erfolgreichen Änderungen die im Puffer verloren gegangen sind müssen wiederholt werden $\rightarrow$ nicht praktikabel!
|
erfolgreichen Änderungen die im Puffer verloren gegangen sind müssen wiederholt werden $\rightarrow$ nicht praktikabel!
|
||||||
\paragraph*{Methoden}
|
\paragraph*{Methoden}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item{ \textbf{Tranaction-Oriented Checkpoint}\\
|
\item{ \textbf{Transaction-Oriented Checkpoint}\\
|
||||||
Geänderte Seiten einer TA nach TA-ende sofort in DB bringen (siehe FORCE) $\rightarrow$ zu hohe Belastung}
|
Geänderte Seiten einer TA nach TA-ende sofort in DB bringen (siehe FORCE) $\rightarrow$ zu hohe Belastung}
|
||||||
\item{ \textbf{ Transaction-COnsisten Checkpoint}
|
\item{ \textbf{ Transaction-COnsisten Checkpoint}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -375,9 +393,10 @@ erfolgreichen Änderungen die im Puffer verloren gegangen sind müssen wiederhol
|
|||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Analyse Lauf
|
\item Analyse Lauf
|
||||||
Vom letzten Checkpoint bis zum Log Ende. Bestimmung von Gewinner und Verlierer TA's, sowie Seiten, die von ihnen geändert wurden
|
Vom letzten Checkpoint bis zum Log Ende. Bestimmung von Gewinner und Verlierer TA's, sowie Seiten, die von ihnen geändert wurden
|
||||||
\item Undo Lauf
|
\item Undo Lauf \\
|
||||||
Rücksetzen der Verlierer TA's durch Rückwärtslesen des Logs bis zum BOT Satz der ältesten Verlierer TA
|
Rücksetzen der Verlierer TA's durch Rückwärtslesen des Logs bis zum BOT Satz der ältesten Verlierer TA
|
||||||
\item Redo Lauf
|
\item Redo Lauf \\
|
||||||
Vorwärtslesen des Logs (Startpunkt abhängig ovn Checkpoint Typ) und Änderungen der Gewinner TA's wiederholen
|
Vorwärtslesen des Logs (Startpunkt abhängig von Checkpoint Typ) und Änderungen der Gewinner TA's wiederholen
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
Loading…
Reference in New Issue
Block a user