The case where V
yields a semantics for update that is simply a file system write operation;
the case where V
amounts to support for atomic read-modify-write operations on objects.
Though powerful, this semantics falls short of supporting transactions,
which would allow a request to query and/or update multiple objects indivisibly.
An actual implementation
would probably store the current value of the object rather than
storing the sequence of updates that produces this current
value. We employ a sequence of updates representation here
because it simplifies the task of arguing that strong consistency
stores the current value of
rather than its entire history then
" should be interpreted
to denote applying
the update to the object.
current state rather than a sequence of updates, then <= is defined to be the "prior value" relation rather than the "prefix of"
Actually, the placement strategy is not discussed
]. GFS does some load balancing that results in an
approximately even load across the servers, and in our simulations
we expect that random placement is a good approximation of this
An unrealistically short MTBF was selected here to facilitate
running long-duration simulations.