\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}