\begin{frame}
\frametitle{Preclaiming 2 Phase Locking Protocol}
\begin{goal}{Preclaiming 2 Phase Locking}
\begin{tcenter}
\begin{tikzpicture}[nodes={black,scale=.8}]
\draw [thick,->] (0,0) -- node [at end,above] {time} (5cm,0);
\draw [thick,->] (0,0) -- node [at end,left] {\#of locks held} (0,1.5cm);
\draw [red,very thick] (0,0) -- (0cm,1cm) -- (2.5cm,1cm) -- node [sloped,above] {release phase} (4cm,0cm);
\end{tikzpicture}
\end{tcenter}
All needed locks are declared at the beginning of the transaction.
\end{goal}
\pause\medskip
Advantage: \emph{No deadlocks!}\\
But rollbacks are cascading.
\pause\medskip
\begin{alertblock}{Disadvantage}
Not applicable in multi-query transactions. \error\\[1ex]
(Queries might depend on the results of the previous queries)
\end{alertblock}
\end{frame}