如何处理跨多个客户端删除Couch中的数据库?

时间:2017-05-17 10:46:26

标签: database optimization couchdb database-replication pouchdb

在CouchDB中,有时候最终你可能会在数据库中删除比活动文档更多的文档。经过一段时间后,这会变得有些不理想,因为您正在同步更多已删除的文档数据。

The official documentation recommends periodically destroying the databases in order to get around this,但我注意到,这样做的所有事情都是客户端拥有数据库的本地副本(例如,如果您有一个名为“username”的数据库,该数据库旨在复制到客户端设备通过邮袋),当它看到空白数据库时,重新填充它,删除文件记录和所有。

每次都没有更改数据库名称,有没有办法向其他Couch实例发出信号,告诉他们不应该重新填充新的干净数据库,而是将其作为新数据库完全取消?或者,事实上,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

是的,如果您有双向复制,那么"另一方"将所有已删除的文档复制回新数据库。我能想到的唯一两个选项是拥有一个新数据库(使用新名称,这是您链接的文档可能意味着什么),或使用filtered replication以便客户端不会推高已删除的文档(或者不会推送早于某个点的已删除文档)。

这些选项中的后者比前者复杂得多。