CouchDB的陈旧= update_after的性能如何?

时间:2012-09-24 01:28:36

标签: mapreduce couchdb

我很好奇CouchDB视图API的stale=update_after功能如何运作。

我可以看到here它返回陈旧的结果,然后更新视图:

  

如果设置了stale = ok,CouchDB即使过时也不会刷新视图,这样可以提高查询延迟。如果设置了stale = update_after,CouchDB将在返回过时结果后更新视图。在版本1.1.0中添加了update_after。

假设我插入了大量文档 - 足以需要几分钟来更新视图索引 - 然后我使用stale=update_after快速连续查询视图两次。第一个查询将很快返回;这是update_after的重点。

我的问题是,第二个查询是否会快速返回陈旧的结果,还是会等待视图完成更新?

1 个答案:

答案 0 :(得分:6)

第二个查询也会返回过时的结果。它使用查询命中服务器时可用的部分结果。如果您刚刚添加了文档,那就没事了。

但是如果您修改了视图,第一个查询将返回第一个查询的结果并触发视图的完整重建。因此,第二个查询可能不会产生任何结果,也可能只会产生很少的行。

所以答案很简单:在你的情况下,两个查询都会快速返回,第二个查询可能会给出与第一个查询相同的结果,也许会有一些额外的行。

希望我能帮忙!

你的,伯恩哈德