On Mar 8, 2009, at 9:39 AM, Chris Anderson wrote:

The second is that you have to think this way if you'll be dealing
with replicated data. If you have edits on dbB and you replicate them
to dbA, dbA only see the edits that dbB would still contain if it were
replicated.

It is possible to preserve version history in a distributed system, though. Git, Mercurial, Bazaar etc. all do it. I imagine the same techniques they use could be implemented at the application level in CouchDB, although it seems a bit inelegant to then have two different notions of versioning on top of each other.

The "Revlog" structure used by Mercurial for this is quite elegant (it seems to have a lot in common with CouchDB's implementation!) and is nicely explained in this paper [PDF].

—Jens

Reply via email to