\begin{frame}
\frametitle{Multi-Granularity Locking}
\begin{goal}{}
Decide the granularity of locks held \emph{for each transaction}.\\
\remark{Depending on the characteristics of the queries.}
\end{goal}
\pause\smallskip
For example, acquire a \emph{row lock} for:
\begin{code}{\textwidth}{$Q_1$: row-selecting query (\sql{id} is a key)}
\small
\BUseVerbatim{query}
\end{code}
\pause\vspace{-1.5ex}
For example, acquire a \emph{table lock} for:
\begin{code}{\textwidth}{$Q_2$: table scan query}
\small
\BUseVerbatim{query2}
\end{code}
\pause\vspace{-1.5ex}
\begin{alertblock}{}
How do such transactions know of each others locks?\\
\remark{Note that the locks are on different granularity levels!}
\end{alertblock}
\end{frame}