\begin{frame}
\frametitle{Optimistic Concurrency Control}
Up to now we have seen \emph{pessimistic} concurrency control:
\begin{itemize}
\item assume that transactions \emph{will conflict}
\item protect the database integrity by \emph{locks} and lock protocols
\end{itemize}
\pause\medskip
\begin{goal}{Optimistic concurrency control}
\begin{itemize}
\item hope for the best
\item let transactions freely proceed with read/write operations
\item only \emph{at commit, check that no conflicts have happened}
\end{itemize}
\end{goal}
\pause\medskip
Rationale:
\begin{itemize}
\item non-serializable conflicts are not that frequent
\item \emph{save the locking overhead}
\item only invest effort if really required
\end{itemize}
\end{frame}