Camera ready version. Emailed it out.

This commit is contained in:
Sears Russell 2006-09-06 08:17:27 +00:00
parent 8cea61b148
commit e48267fcf5
2 changed files with 14 additions and 12 deletions

View file

@ -767,20 +767,22 @@ page LSNs rather than reading them from pages. One safe estimate
is the LSN of the most recent archive or log truncation point.
Alternatively, \yad could occasionally store its {\em dirty page
table} to the log (Figure~\ref{fig:lsn-estimation}). The dirty page
table lists all dirty pages and their {\em recovery LSNs}. It
provides a lower bound of the LSN of the first log entry that must be
applied to each page in the page file. It is used by ARIES to reduce
table lists all dirty pages and their {\em recovery LSNs}.
%It
%stores the LSN of the first log entry that may need to be
%applied to each page in the page file.
It is used by ARIES to reduce
the amount of work that must be performed during REDO.
The recovery LSN (RecLSN) is the LSN of the log entry
that caused a clean (up-to-date on disk) page to become dirty. No log
entries older than the RecLSN need to be applied to a page during
redo. Therefore, redo can safely estimate the page LSN with any number less than RecLSN.
entries older than the RecLSN need to be applied to the page during
redo. Therefore, redo can safely estimate the page LSN by choosing any number less than RecLSN.
If a page is not in the table, redo can use the LSN of the log
entry that contains the table, since the page must have been clean
when the log entry was produced. \yad writes the dirty page table to
log whether or not LSN-free pages are in use, so we expect the runtime
overhead to be minimal.
overhead to be negligible.
%Each dirty list is an
%accurate sparse representation of the LSNs of the entire page file.
@ -794,10 +796,10 @@ overhead to be minimal.
\begin{figure}
\includegraphics[%
viewport=0bp 0bp 460bp 225bp,
viewport=-1bp 0bp 460bp 225bp,
clip,
width=1\columnwidth]{figs/lsn-estimation.pdf}
\caption{\label{fig:lsn-estimation}LSN estimation. If a page was not mentioned in the log, it must have been up-to-date on disk. Here, RecLSN is the LSN of the entry that caused the page to become dirty. Subtracting one yields a safe estimate of the page LSN.}
\caption{\label{fig:lsn-estimation}LSN estimation. If a page was not mentioned in the log, it must have been up-to-date on disk. RecLSN is the LSN of the entry that caused the page to become dirty. Subtracting one gives us a safe estimate of the page LSN.}
\vspace{-12pt}
\end{figure}
@ -1045,7 +1047,7 @@ perform similarly to comparable monolithic implementations.
\begin{figure}[t]
\graphdbg{\includegraphics[%
viewport=-23bp 28bp 625bp 360bp,
viewport=-26bp 28bp 625bp 360bp,
clip,
width=1\columnwidth]{figs/bulk-load.pdf}}
\caption{\label{fig:BULK_LOAD} Performance of \yad and Berkeley DB hash table implementations. The
@ -1054,7 +1056,7 @@ test is run as a single transaction, minimizing synchronous log writes.}
\begin{figure}[t]
\graphdbg{\includegraphics[%
viewport=-43bp 50bp 490bp 370bp,
viewport=-43bp 45bp 490bp 370bp,
clip,
width=1\columnwidth]{figs/tps-extended.pdf}}
\caption{\label{fig:TPS} High-concurrency hash table performance. Our Berkeley DB test can only support 50 threads (see text).
@ -1368,7 +1370,7 @@ the naive traversal.
\begin{figure}[t]
\graphdbg{\includegraphics[%
viewport=-10bp 15bp 525bp 336bp,
viewport=-10bp 10bp 525bp 346bp,
clip,
width=1\columnwidth]{figs/trans-closure-hotset.pdf}}
%\vspace{-12pt}
@ -1580,7 +1582,7 @@ provides a transactional IPC mechanism, and
allows varying degrees of isolation, both to support legacy code, and
to provide an appropriate environment for custom transactional software~\cite{recoveryInQuickSilver}.
By providing an environment that allows multiple,
independently written, transactional programs to interoperate, QuickSilver
independently written, transactional systems to interoperate, QuickSilver
would complement \yad nicely.
%It
%supports transactions over durable and volatile state, and includes a

Binary file not shown.