forked from gakalaba/multidispatch-paper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
implementation.tex
10 lines (7 loc) · 1.18 KB
/
implementation.tex
1
2
3
4
5
6
7
8
9
10
\section{Implementation}
\label{sec:implementation}
We implemented \sys{} by modifying the existing implementation of Multi-Paxos from the EPaxos codebase ~\cite{moraru2013epaxos} written in Go. To provide a fair comparison against the Multi-Paxos baseline, we change as little as possible within the existing framework. Both \sys{} and Multi-Paxos have single threaded leaders and replicas, neither have operation type-specific optimizations (such as read leases), both use the thrifty optimization, and neither use batching for fault-tolerance. The framework implements a replicated key-value store,
which we extend to handle our coordination and final ordering messages.
Since \sdl{} is composable, the unmodified Multi-Paxos clients submit requests to the leader of a single shard. We extended the client library so that clients issue requests to multiple shard leaders to evaluate the multi-shard setting. In \sys{} clients keep track of a per-shard sequence number, and when requests are concurrent, they submit coordination requests to the shard leader of the predecessor operation.
% Jeff: Cut this for now, add for camera-ready
% The code and experimental scripts are available online ~\cite{}.