  This paper studies the lattice agreement problem in asynchronous systems and
explores its application to building linearizable replicated state machines
(RSM). First, we propose an algorithm to solve the lattice agreement problem in
$O(\log f)$ asynchronous rounds, where $f$ is the number of crash failures that
the system can tolerate. This is an exponential improvement over the previous
best upper bound. Second, Faleiro et al have shown in [Faleiro et al. PODC,
2012] that combination of conflict-free data types and lattice agreement
protocols can be applied to implement linearizable RSM. They give a Paxos style
lattice agreement protocol, which can be adapted to implement linearizable RSM
and guarantee that a command can be learned in at most $O(n)$ message delays,
where $n$ is the number of proposers. Later on, Xiong et al in [Xiong et al.
DISC, 2018] give a lattice agreement protocol which improves the $O(n)$
guarantee to be $O(f)$. However, neither protocols is practical for building a
linearizable RSM. Thus, in the second part of the paper, we first give an
improved protocol based on the one proposed by Xiong et al. Then, we implement
a simple linearizable RSM using the our improved protocol and compare our
implementation with an open source Java implementation of Paxos. Results show
that better performance can be obtained by using lattice agreement based
protocols to implement a linearizable RSM compared to traditional consensus
based protocols.
