\begin{frame}
\frametitle{Optimistic Concurrency Control}
\begin{block}{}
Under \emph{optimistic concurrency control}, transactions proceed in \emph{three phases}:
\begin{enumerate}
\medskip
\item \emph{Read phase:} \\[.5ex]
Execute transaction, but do \emph{not} write data back to disk.
Collect updates in the transaction's \emph{private workspace}.
\medskip
\item \emph{Validation phase:} \\[.5ex]
When the transaction wants to \emph{commit},
the DBMS test whether its execution was correct (only acceptable conflicts happened).
If not, \emph{abort} the transaction.
\medskip
\item \emph{Write phase:}\\[.5ex]
Transfer data from private workspace into database.
\end{enumerate}
\end{block}
Note: phases 2 and 3 are performed in a uninterruptible critical section
(also called val-write phase).
\end{frame}