Question

In CouchDB and Cloudant, when documents are changed, the database holds on to previous versions. What gets kept, and for how long?

Était-ce utile?

La solution

Cloudant and CouchDB keep the document's metadata forever (id, rev, deleted and conflict). Document contents are deleted during compaction (automatic in Cloudant, manual in CouchDB), with one exception: in the case of a conflict, we'll keep the document contents until the conflict is resolved.

For each document, we keep the last X revisions, where X is the number returned by {username}.cloudant.com/{db}/_revs_limit, defaulting to 1000. Revisions older than the last 1000 get dropped. You can change _revs_limit by making a PUT request with a new value to that endpoint. For example:

curl -X PUT -d "1500" https://username.cloudant.com/test/_revs_limit

So, if a document is replicated to two nodes, edited 1001 times on node A, and then replicated again to node B, it will generate a conflict on node B (because we've lost the information necessary to join the old and new edit paths together).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top