183/212
\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}