Jens Alfke wrote:
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.
I'm starting to wonder if the notion that CouchDB (may!) keep old document versions around shouldn't be bandied about quite so publicly. It strikes me that it's just a consequence of using MVCC, but as soon as people (myself included) first read about CouchDB, they think, "Hey, I can make a wiki with that!"
Come to think of it, Google App Engine has a similar feature and I don't recall its documentation mentioning MVCC much. They seemed to just say, "If you want to update, fetch, change, and commit and the data store may or may not accept your commit depending on whether your data changed in the interim."
FWIW. -- Jason Smith Proven Corporation Bangkok, Thailand http://www.proven-corporation.com
