concurrency/version control / conflict resolution?

Miles Fidelman mfidelman at meetinghouse.net
Wed Nov 20 13:22:22 UTC 2013


> On Tue, Nov 19 2013, Miles Fidelman wrote:
>
> >/  Has anybody implemented a distributed concurrency/version control on
> />/  top of tahoe-lafs; and/or mechanisms for conflict resolution on files
> />/  where multiple people have writecaps?
> /
> I'm not aware of any such implementation, but you could use something
> similar to CouchDB's conflict management algorithm:
> <http://guide.couchdb.org/draft/conflicts.html> with revision IDs being
> generated by the client since there is no server. Each client would try
> to find the "latest" revision of a document or tree, applying its own
> revisions and uploading a new revision with the appropriate parent
> revision(s).
>
> If you encode both the revision ID and its parent revision(s) in the
> filename, a client can reconstruct the entire revision graph just by
> looking at filenames. Think Viking naming but with unique first names
> and potentially hyphenated last names: Leif Erikson, Henry Leifson, Bob
> Henry-Maryson, etc. You could reconstruct everyone's family tree just by
> knowing their names. This does not scale well to large numbers of
> revisions, but you could just have a policy of moving old revisions off
> into an "attic" after some period of time that is longer than the
> longest you expect to have a "split brain."
>
> Does that make sense? I am happy to go into greater detail if you're
> interested in trying to build something like this.

I guess, the first thing I'm trying to understand are two things:

1. What happens NOW, if two people write updates to the same file 
(writecap) - let's say two processes from the same node, write the same 
file independently.  Do things get messed up, or are two files written, 
each with new capabilities? (I.e., is versioning inherent in the process 
and ids?)

2. If a newly written file has new ids, how does sharing work? I.e., how 
does someone discover that there's a new version of a file?

Thanks!

Miles Fidelman





-- 
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra




More information about the tahoe-dev mailing list