[Sheepdog] Doubt from sheepdog documentation !

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Tue Aug 23 17:47:16 CEST 2011

At Mon, 22 Aug 2011 19:13:41 -0400,
Vivek Chaurasiya wrote:
> Hi all,
> While reading the documentation of SD at
> https://github.com/collie/sheepdog/wiki/Sheepdog-Design
> >>retrying I/O requests
> >>Sheepdog stores all node membership histories. We call the version number
> of the histories ''epoch'' (See also the 'Object Recovery' section). When
> the gateway forwards I/O >>requests to the target node and the latest epoch
> number doesn't match between the gateway and the target node, the I/O
> requests fail and *the gateway retries the requests until >>the epoch
> numbers match.* This is necessary to keep a strong consistency of replicated
> objects.
> 1. Does this algorithm is on the lines of 'Paxos consensus protocol' ?

No.  What I meant here is that we can avoid the possibility to read
the old data.  If the gateway read data from a wrong target based on
the old node membership info, the data may be no longer valid.  To
avoid this problem, the sheep daemon checks the version of a node
membership (epoch) every time when it communicates with the other

> 2. When gateway retries, do we make sure that is doesn't contact the same
> target node it did before ?

Unfortunately, no.  The gateway will simply try again as soon as
possible, and it can happen to connect the same node based on the old



More information about the sheepdog mailing list