CouchDB View 在插入 50k 事务后需要 12 小时才能更新

CouchDB View takes 12 hours to update after inserting 50k transactions

我正在尝试对我们应用程序的一个方面进行负载测试。它涉及一个从 Cloudant 获取数据并对其进行处理的 lambda。由于 AWS 的 API 网关的限制,如果 lambda 需要超过 30 秒才能得到 return 结果,我们会从网关收到超时。这意味着我们需要 运行 在从 Cloudant 加载的 lambda 中进行负载测试,以获得真实世界的准确结果。

我做的第一件事是使用批量文档将 51,001 个文档插入 Cloudant。插入它们后,我点击了 all_docs 端点,它确认数据库中有 51,001 个文档。

当我点击帮助我们查询文档的视图时,问题就出现了。 1 小时后,它 return 正在处理 13000k 个文档。每次我点击它时,视图中都会多出 100-200 个文档。快进到现在,将交易插入数据库 13 小时后,视图刚刚 returning 51,001 个文档。

当插入大量事务时,Cloudant 是否总是需要这么长时间来创建视图?直到 10k-11k 时,它的声音都很好,但随后需要额外 12 个小时才能产生其余部分。当然这不是预期的行为?我不能共享代码,因为它是我公司的,但我们对每个文档发出的视图非常小。它是一个大约有 8 个参数的 JSONobject,它真的很小。

问题不包含有关视图的信息,因此我们不能忽略没有自定义 reducer 的事实。 Custom reducers are to be avoided in general。此外,请考虑优化视图的 map 部分。

24 小时后该行为停止,我可以插入 50k trans 并且视图实时更新。我猜 cloudant 限制了我们的速率或者有一些奇怪的资源限制。

找不到任何令人不安的文档