如何在CouchDB中禁用版本控制?

时间:2011-06-22 13:53:14

标签: couchdb

我知道有时这是一个很好的功能,但如果我需要存储大量数据,那么围绕数据本身就没有其他“元数据”。

有没有办法在CouchDB中禁用版本控制,还是需要使用不同的数据库引擎,比如Mongo?

3 个答案:

答案 0 :(得分:17)

版本控制不是CouchDB的功能 它是将数据写入磁盘的方式的核心功能,并预处理与其他节点的复制冲突解决方案。 历史机制。

非常遗憾的是,没有比version更好的术语来引用先前的文件副本。因为version对大多数开发人员来说意味着存储了historical。这不是CouchDB中的任何用途。

在CouchDB文档中,不依赖在以前的版本上作为备份或版本控制系统,它们可能随时消失,因为它们被使用主要用于复制冲突检测。但简单的事实是,这不是功能,而是CouchDB的工作原理。

删除过去版本的唯一方法是定期compact数据库。在当前版本的CouchDB中,可以使用挂钩到文档更新的脚本启用,并根据高水位阈值触发半自动压缩。通常,这是在批量更新大量文档后手动完成的,您知道从特定于应用程序的角度来看这可能是有益的。

也就是说,如果您没有更新文档,则不会生成历史记录,也不需要这样做。

答案 1 :(得分:4)

您可以尝试_revs_limit API(例如/ database / _revs_limit)。我从未使用过它我只是在这个链接上阅读http://wiki.apache.org/couchdb/Security_Features_Overview

答案 2 :(得分:0)

Couchbase single server 2.0 developer preview还在CouchDB的未来版本中自动压缩其他功能和改进which should be also present。这可以帮助您根据某些设置自动删除旧文档版本。