[tahoe-dev] split brain? how handled in tahoe -- docs?
James A. Donald
jamesd at echeque.com
Wed Aug 8 08:46:02 UTC 2012
On 2012-08-08 5:57 PM, Tony Arcieri wrote:
> There are only two options:
>
> - Available: Tahoe still accepts writes (and all other operations, but
> writes are the hardest) in the middle of a network partition, like it does
> today (provided sufficient nodes are available). The current mechanism is
> "last writer wins" although there are more sophisticated mechanisms
> available if this property is desirable.
> - Consistent: Tahoe sacrifices write availability to ensure strong
> consistency in the event of a network partition. This can take the form of
> several algorithms including a singular master with two phase commit or
> Paxos.
>
> These are the only two options.
What is, however, avoidable, and should be avoided, is that you might
write the most recent version of a file, and then get a mangled mixture
of more recent and less recent versions.
What is inconsistency? That you might write the most recent version of
a file, and then read a less recent version of the file. Assuming you
have a local record of what was stored, this is detectable: "Hey: I
asked for file fred, dated 2012-08-07. Where is it?". Presumably you
access the file through a directory that has date and version data in
it. Thus in practice, inconsistency becomes a slight reduction in read
availability, which is never going to be 100% anyway.
That you might write the most recent version of a file, and someone else
read the less recent version of the file is generally acceptable. That
is just finite, and quite possibly slow, propagation time.
More information about the tahoe-dev
mailing list