7

我很好奇stale=update_afterCouchDB 视图 API 的功能是如何工作的。

我可以在这里看到它返回过时的结果,然后更新视图:

如果设置了 stale=ok,CouchDB 不会刷新视图,即使它是陈旧的,好处是改进了查询延迟。如果设置了 stale=update_after,CouchDB 将在返回过时的结果后更新视图。update_after 是在 1.1.0 版中添加的。

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

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

4

1 回答 1

8

第二个查询也返回过时的结果。它使用查询到达服务器时可用的部分结果。如果您只是添加文档,那很好。

但是如果您修改了视图,第一个查询将返回第一个查询的结果并触发视图的完全重建。所以第二个查询可能不会提供任何结果或只提供很少的行。

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

希望我能帮上忙!

你的,伯恩哈德

于 2012-09-25T08:35:58.930 回答