\section{Introduction} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{A very casual motivation} \begin{center} \Large I want to host \textbf{resilient web services} with \textbf{acceptable performance} on commodity hardware behind \textbf{household networks}. \end{center} \vfill \begin{block}{Keywords} \begin{columns} \column{.5\columnwidth} \begin{itemize} \item Decentralised networks \item Edge computing \end{itemize} \column{.5\columnwidth} \begin{itemize} \item Distributed storage \item Privacy \end{itemize} \end{columns} \end{block} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{Context} \textbf{Resilience}: Ability to recover quickly from failures and changes. \vspace{1ex} Only achievable through distribution of the hosted applications across several physical locations. \vfill \begin{block}{Application = \textbf{computations} on \textbf{data}} \begin{itemize} \item \textbf{Computation}: Stateless; easy to distribute \& orchestrate. % where it is performed does not matter as long as the application's state is accessible R/W %Computation units are "easy" to distribute and orchestrate. \item \textbf{Data}: Stateful; hard to distribute \& full of trade-offs. \end{itemize} \end{block} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{Concurrent writes example}{How to lose vaccines} \centering \includegraphics[width=.5\columnwidth]{figures/conflict_problem.pdf} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{The problem} % \textbf{Path dependency}: existing data stores are built for data centres. % $\implies$ They assume good inter-node connectivity. % \vfill \begin{center} \Large Can we design an available data store tailored for adverse network conditions? \end{center} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Maybe more framing of the context. What kind of data storage? Object vs Block vs what? % \begin{frame}{``Stateless'', ``serverless'', and the elephant in the room} % It seems easy to deploy \& administer web services nowadays ... % Because the inherent complexity is shadowed by proprietary ``cloud'' solutions. % The IT crowd can gloss over ``statelessness'' \emph{ad nauseam} ... % But storing \emph{state} remains an open research problem. % Data storage is either: % \begin{itemize} % \item A single point of failure; % \item Delegated to proprietary solutions; % \item Pain. % \end{itemize} % Today, we will review networked storage's history, and discuss open research questions. % \end{frame}