\begin{frame} \frametitle{Detecting Conflicts} Now suppose an updating query comes in: \smallskip \begin{code}{\textwidth}{$Q_3$: update request} \small \BUseVerbatim{query} \end{code} \vspace{-1ex} \pause \begin{exampleblock}{} The query $Q_3$ will try to: \begin{itemize} \item obtain an \emph{IX lock} on the \emph{database} \item obtain an \emph{IX lock} on the \emph{table} \sql{Customers} \end{itemize} Afterwards obtain an \emph{X lock} on the \emph{row} with \sql{id = 17}. \end{exampleblock} \begin{itemize} \pause \item compatible with $Q_1$ \\(no conflict between IS of $Q_1$ and IX lock of $Q_3$ on table) \pause \item \alert{incompatible} with $Q_2$\\ (\alert{conflict} between S lock of $Q_2$ and IX lock of $Q_3$ on table) \end{itemize} \end{frame}