PRL Seminars
A Reconfigurable Atomic Memory Service for Dynamic Networks
We present an algorithm that emulates atomic read/write shared objects in a
dynamic network setting. To ensure availability and fault-tolerance, the
objects are replicated. To ensure atomicity, reads and writes are performed
using quorum configurations, each of which consists of a set of
members plus sets of read-quorums and write-quorums.
The algorithm is reconfigurable:
the quorum configurations may change during computation, and
such changes do not cause violations of atomicity.
Any quorum configuration may be installed at any time.
The algorithm tolerates processor crashes and message loss and
guarantees atomicity for arbitrary patterns of asynchrony and
failure.
The processing consists of three major concurrent
activities: reading and writing objects, introducing new
configurations, and removing obsolete configurations.
The algorithm is formally specified using Input/Output Automata
notation and its correctness (atomicity) is proved using invariants
and partial-order-based methods. The algorithm satisfies a variety
of conditional performance properties, based on timing and failure
assumptions. We implemented this atomic memory system in a LAN by
carefully mapping the formal specification to Java/sockets code,
and empirical performance studies are in progress. Finally we
discuss a variety of algorithmic optimizations.
Joint work with Nancy Lynch.
|