【发布时间】:2013-07-27 18:38:15
【问题描述】:
在 CouchDB 和 Cloudant 中,当文档发生更改时,数据库会保留以前的版本。保留什么,保留多长时间?
【问题讨论】:
在 CouchDB 和 Cloudant 中,当文档发生更改时,数据库会保留以前的版本。保留什么,保留多长时间?
【问题讨论】:
Cloudant 和 CouchDB 永久保留文档的元数据(id、rev、deleted 和冲突)。文档内容在压缩过程中被删除(在 Cloudant 中是自动的,在 CouchDB 中是手动的),但有一个例外:在发生冲突的情况下,我们将保留文档内容直到冲突解决。
对于每个文档,我们保留最后 X 个修订,其中 X 是 {username}.cloudant.com/{db}/_revs_limit 返回的数字,默认为 1000。超过最后 1000 个的修订被删除。您可以通过向该端点发出带有新值的 PUT 请求来更改 _revs_limit。例如:
curl -X PUT -d "1500" https://username.cloudant.com/test/_revs_limit
所以,如果一个文档被复制到两个节点,在节点 A 上编辑了 1001 次,然后再次复制到节点 B,它将在节点 B 上产生冲突(因为我们已经丢失了加入旧节点所需的信息和新的编辑路径)。
【讨论】: