% -*- TeX-PDF-mode: t -*-

\documentclass[11pt,twocolumn]{article}
\usepackage{fullpage,amsmath,amsthm,amsfonts,amssymb,graphicx,multirow}

\newcommand{\func}[2]{\id{#1}(#2)}
\newcommand{\id}[1]{\textit{#1}}

% Scruntch lists and bibliography
\let \olditemize = \itemize
\renewcommand{\itemize}{\olditemize{}\itemsep=-\parskip}
\let \oldenumerate = \enumerate
\renewcommand{\enumerate}{\oldenumerate{}\itemsep=-\parskip}
\let \oldlist = \list
\renewcommand{\list}[2]{\oldlist{#1}{#2}\itemsep=-\parskip}


\begin{document}
\title{Optimizing Distributed Read-Only Transactions
  Using~Multiversion~Concurrency}
\author{Dan R. K. Ports \hspace{1em}
  Austin T. Clements \hspace{1em}
  Irene Y. Zhang\\
 \normalsize{\texttt{$\{$drkp,amdragon,iyzhang$\}$@mit.edu}}}
\date{December 15, 2007}
\maketitle

\begin{abstract}
  {\it Distributed transactional systems typically achieve efficiency
    by abandoning true serializability for weaker forms of consistency
    that are difficult to reason about because they expose the
    concurrency in the underlying system.  We explore an alternate
    route: weakening \emph{causality} instead of consistency.  Our
    proposed algorithm achieves global serializability by sacrificing
    global causality, which we argue is reasonable in many situations.
    This allows our algorithm to achieve efficiency by permitting
    read-only transactions to operate on stale but locally available
    cache data.  We present the details of a transactional block
    storage protocol that implements this form of concurrency control,
    as well as a performance evaluation of an experimental
    implementation of this protocol and comparison against
    conventional optimistic concurrency control.}
\end{abstract}

\section{Overview}
\label{sec:overview}
\input{overview}

\section{System Model}
\label{sec:model}

\input{model.tex}

\section{Algorithm}
\label{sec:algorithm}

\subsection{Properties}
\label{sec:algorithm:properties}
\input{properties}

\subsection{Protocol}
\label{sec:algorithm:protocol}

\input{protocol.tex}

\section{Implementation}
\label{sec:implementation}

\input{implementation.tex}

\section{Evaluation}
\label{sec:evaluation}

\input{evaluation.tex}

\section{Related Work}
\label{sec:related-work}

\input{related.tex}

\section{Future Work}
\label{sec:future-work}
\input{future}

% XXX Better RO transaction timestamp assignment, such as window reduction

\section{Conclusion}
\label{sec:conclusion}
\input{conclusion.tex}


\bibliographystyle{abbrv}
\small
\bibliography{bibliography/bibliography}

\end{document}
