154/212
\begin{frame}
  \frametitle{Granularity of Locking}

  \begin{goal}{The granularity of locking is a trade-off}
    \begin{center}
    \begin{tikzpicture}
      \begin{scope}[node distance=15mm]
      \node (db) {database level};
%       \node (ts) [below of=db] {tablespace level};
      \node (t)  [below of=db] {table level};
%       \node (p)  [below of=t] {page level};
      \node (r)  [below of=t] {row level};
      \end{scope}
      
      \begin{scope}[node distance=35mm]
      \node (lc)  [right of=db] {low concurrency};
      \node (lo)  [right of=lc] {low overhead};
      \node (hc)  [right of=r] {high concurrency};
      \node (ho)  [right of=hc] {high overhead};
      \end{scope}

      \begin{scope}[->,very thick]
      \draw (db) -- (t);
%       \draw (t) -- (p);
%       \draw (p) -- (r);
      \draw (t) -- (r);
      \end{scope}
      
      \begin{scope}
        \draw[draw=red,fill=red!10] ($(lc)+(-2mm,-5mm)$) -- ($(hc)+(-6mm,10mm)$) -- ($(hc)+(-10mm,10mm)$) -- ($(hc)+(0mm,5mm)$) -- ($(hc)+(10mm,10mm)$) -- ($(hc)+(6mm,10mm)$) -- ($(lc)+(2mm,-5mm)$) -- cycle;
        \draw[draw=red,fill=red!10] ($(lo)+(-2mm,-5mm)$) -- ($(ho)+(-6mm,10mm)$) -- ($(ho)+(-10mm,10mm)$) -- ($(ho)+(0mm,5mm)$) -- ($(ho)+(10mm,10mm)$) -- ($(ho)+(6mm,10mm)$) -- ($(lo)+(2mm,-5mm)$) -- cycle;
      \end{scope}
    \end{tikzpicture}
    \end{center}
  \end{goal}
  \medskip
  
  Idea: multi-granularity locking\ldots
\end{frame}