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

Mar*_*ase 6 couchdb mapreduce

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

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

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

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

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

Ber*_*ner 6

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

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

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

希望我能帮忙!

你的,伯恩哈德

  • 对不起,迟到的回复:stale = update_after ALWAYS立即返回.如果"其他客户端"未使用stale = update_after,则其查询将被延迟.但这有点误导,因为无论如何他们的查询都会被延迟. (2认同)