[tahoe-dev] split brain? how handled in tahoe -- docs?

Tony Arcieri tony.arcieri at gmail.com
Wed Aug 8 08:53:23 UTC 2012


On Wed, Aug 8, 2012 at 1:46 AM, James A. Donald <jamesd at echeque.com> wrote:

> 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.
>

Most editors will attempt to inform you if you are overwriting a newer
version of a file based on data from an earlier file (prior to any saved
modifications). This isn't a necessary property of any editors, and it
certainly isn't a necessary property of filesystems. Pretty much all
filesystems will allow you to overwrite data without any complaints so long
as you have the appropriate permissions.


> What is inconsistency?  That you might write the most recent version of a
> file, and then read a less recent version of the file.


The bigger problem in the wake of a network partition is that the 2/N sides
of a partition may have different views of the same file, modify it while
partitioned, and that only one version of the file, after the network
partition is resolved, will be considered authoritative.

A strongly consistent system might inform you that the datastore is in a
partitioned state and spit back an error when you attempt to write instead
of allowing the write and choosing a different version of the same file
later after the partition is resolved.

As Zooko points out, merges are possible, and a sophisticated distributed
system will allow several versions of the same file to exist simultaneously
(a.k.a. "siblings" in systems like Riak)_ then attempt to employ some sort
of merge algorithm after the network partition is resolved.

-- 
Tony Arcieri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tahoe-lafs.org/pipermail/tahoe-dev/attachments/20120808/bd8e099f/attachment.html>


More information about the tahoe-dev mailing list