1

我正在尝试将 CouchDB 用于需要对所有数据操作进行全面审核的系统。由于其内置的修订跟踪功能,沙发似乎是一个理想的选择。但后来我在O'Reilly 教科书中读到“CouchDB 不保证保留旧版本”。

我似乎找不到更多关于这一点的文档,或者沙发如何在内部处理其修订跟踪。有没有办法在每个数据库或每个文档级别上配置沙发以永久保留所有版本?如果是这样,怎么做?

4

3 回答 3

7

CouchDB 中的修订不是您想象中的修订。它们是将更新的数据附加到数据库的方式的产物,并在压缩时被清理。这是一个常见的误解。

您需要将修订跟踪作为应用程序架构/文档设计的一部分来实现。

于 2010-05-13T11:38:45.860 回答
0

删除 CouchDB 中以前版本的文档有两种情况:

  1. 复制
  2. 压实

因此,如果您不想存储大量数据,即 TB,那么您可能不需要复制。无论如何,CouchDB 中的 master to master 复制是它最重要的特性之一。磁盘上 CouchDB 的大小比传统数据库大,因此将来您可能需要compaction

如前所述:您需要在应用程序的架构/文档设计中实现修订跟踪。

于 2012-07-25T07:27:02.173 回答
0

沙发正在存储所有版本,但是如果您在“紧凑型数据库”链接上单击蒲团,则所有以前的版本都将被删除。因此,如果不点击紧凑型数据库,我认为所有版本都将被保留:)

于 2010-05-13T11:22:54.287 回答