concurrency/version control / conflict resolution?
Sean Lynch
seanl at literati.org
Wed Nov 20 01:32:25 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.
--
Sean Richard Lynch <seanl at literati.org>
http://www.literati.org/~seanl/
More information about the tahoe-dev
mailing list