  Distributed algorithms that operate in the fail-recovery model rely on the
state stored in stable memory to guarantee the irreversibility of operations
even in the presence of failures. The performance of these algorithms lean
heavily on the performance of stable memory. Current storage technologies have
a defined performance profile: data is accessed in blocks of hundreds or
thousands of bytes, random access to these blocks is expensive and sequential
access is somewhat better. File system implementations hide some of the
performance limitations of the underlying storage devices using buffers and
caches. However, fail-recovery distributed algorithms bypass some of these
techniques and perform synchronous writes to be able to tolerate a failure
during the write itself. Assuming the distributed system designer is able to
buffer the algorithm's writes, we ask how buffer size and latency complement
each other. In this paper we start to answer this question by characterizing
the performance (throughput and latency) of typical stable memory devices using
a representative set of current file systems.
