gpt4 book ai didi

CouchDB 压缩和文档删除 - 压缩无动于衷?

转载 作者:行者123 更新时间:2023-12-04 17:04:17 27 4
gpt4 key购买 nike

将一个简单的 CouchDB 归结为 CouchDB 压缩对删除的文档完全无动于衷的理论。

在尝试检索文档时,通过 DELETE 方法从沙发上删除文档会产生以下结果:

本地主机:5984/enq/deleted-doc-id
{"error":"not_found","re​​ason":"deleted"}

预期的。

现在我压缩数据库:
本地主机:5984/enq/_compact
{'确定':真的}

并检查压缩已完成
“compact_running”:假

现在我希望 CouchDB 在简单的 GET 上返回 not_found,原因“丢失”
本地主机:5984/enq/deleted-doc-id
{"error":"not_found","re​​ason":"deleted"}

尝试使用 ?rev=deleted_rev 会给我一个完整的文档,是的,对于毫无值(value)的数据。

所以我认为 couchdb 压缩没有对已删除的文档进行特殊处理并且在决定压缩的一部分时简单地查看转数计数和转数限制是否正确。我们可以为已删除的文档设置特殊的 rev_limit 吗?

当然唯一的解决方案不能是_purge?目前我们必须有数千个孤立的已删除文档,虽然我们想为普通文档保留一些版本历史,但我们不想将 rev_limit 减少到 1 以帮助解决这种情况

清除时我们应该注意哪些复制问题?

最佳答案

删除的文档会永久保留(因为它对于提供副本之间的最终一致性至关重要)。所以,你描述的行为是故意的。

要尽可能有效地删除文档,请使用 DELETE 动词,因为它仅存储 _id、_rev 和已删除标志。当然,您可以通过 POST 或 PUT 手动实现相同的功能。

最后,_purge 仅存在于极端情况下,例如,您已将重要密码放入 couchdb 文档并需要将其从磁盘中删除。这不是修剪数据库的推荐方法,它通常会使您拥有的任何 View 无效(强制完全重建)并且也会干扰复制。

关于CouchDB 压缩和文档删除 - 压缩无动于衷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com