CouchDB does not provide revisioning or history features to the end
user at all. This is a common mistake.
The use of _rev and MVCC is purely a mechanism to enable sane
replication between servers where writes are permitted everywhere.
CouchDB's replication will only ensure that the current version* of
any document is replicated, earlier revisions are *not* replicated.
Earlier revisions are also removed on compaction, which is an
essential maintenance operation.
B.
* Strictly, CouchDB replicates all leaf revisions of all documents,
the difference is only noticeable if a document has conflicts (all
conflicting versions will be replicated).
On 9 April 2011 09:45, Thomas Vander Stichele <svsamoht@gmail.com> wrote:
> On Thu, 2011-04-07 at 11:19 -0700, Mark Hahn wrote:
>> You are not even guaranteed the old version will be there.
>
> I would be ok with that, it doesn't seem to be a big problem in
> practice. (Although it's strange to me that all the infrastructure is
> there to have document revisions, but we have no control over how much
> history we want couchdb to keep. Seems like a relatively
> straightforward next step).
>
>> You need
>> to build history into your app.
>
> Can you be a bit more explicit about what you mean?
>
> It sounds like you say I should re-write CouchDB's revisioning/history
> approach in my app just to get around the fact that couchdb has no
> controls for history. I might as well build it on top of anything else
> than couchdb no ? :)
>
> Thanks
> Thomas
>
>
>
|