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