Couchbase .Net客户端库GetView缓存问题

时间:2012-07-02 15:36:28

标签: c# .net couchbase

我正在运行couchbase server 2.0(开发预览版4)并使用.net客户端库版本1.2。

当我将一些文档(json)添加到我的数据库然后在几秒钟内(少于10)我尝试通过.net客户端库通过GetView获取此文档时,它总是在第一次查询时返回旧值。仅在第二个查询时它返回实际值。

当我通过REST api执行相同的查询时,它返回实际值。

有人能提供一些有关此事的信息吗?

1 个答案:

答案 0 :(得分:3)

Couchbase中视图的默认行为是逐步更新视图的索引。它正在请求实际触发增量更新的视图。换句话说,当您第一次请求视图时,您触发了要在服务器上更新的索引(只需要索引新文档)。因此,在您第二次调用GetVew时,新文档被编入索引。

通过这种方式,Couchbase视图最终是一致的。如果陈旧读取对您的情况不适合或不可接受,则可以在请求视图并修改默认行为时使用Stale fluent方法。

因此,在获得结果之前强制更新视图:

var view = client.GetView("beers", "by_name").Stale(StaleMode.False);

http://www.couchbase.com/docs/couchbase-sdk-net-1.2/api-reference-view.html提供了更多信息。

- 约翰