\begin{frame} \frametitle{Scheduler} \begin{goal}{} The \emph{scheduler} decides the execution order of concurrent database access. \end{goal} \medskip \begin{center} \begin{tikzpicture}[nodes={rectangle,rounded corners=1mm,draw=black,fill=blue!10,outer sep=1mm}, node distance=20mm] \node (c1) {Client 1}; \node (c2) [right of=c1] {Client 2}; \node (c3) [right of=c2] {Client 3}; \node (s) [below of=c2] {Scheduler}; \node (a) [below of=s,node distance=32mm] {Access and Storage Layer}; \begin{scope}[->,very thick, s1/.style={thick,fill=yellow!20,inner sep=.5mm}, s2/.style={thick,fill=red!20,inner sep=.5mm}, s3/.style={thick,fill=green!20,inner sep=.5mm} ] \draw (c1) -- node [pos=.0,s1,below left] {3} node [pos=.3,s1,below left] {2} node [pos=.6,s1,below left] {1} (s); \draw (c2) -- node [pos=.3,s2,left] {2} node [pos=.7,s2,left] {1} (s); \draw (c3) -- node [pos=.0,s3,below right] {3} node [pos=.3,s3,below right] {2} node [pos=.6,s3,below right] {1} (s); \draw (s) -- node [pos=.2,s2,left] {1} node [pos=.4,s3,left] {2} node [pos=.6,s3,left] {1} node [pos=.8,s1,left] {1} (a); \end{scope} \end{tikzpicture} \end{center} \end{frame}