[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