首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Couchbase视图一致性

Couchbase视图一致性
EN

Stack Overflow用户
提问于 2016-02-11 12:11:28
回答 1查看 106关注 0票数 0

以下代码保证以持久的方式将任何给定的文档保存到Couchbase集群中的活动节点,并复制到另一个节点:

代码语言:javascript
复制
cas, err := myBucket.UpsertDura(docToStore, valueToStore, 1, 1)

考虑到Couchbase视图最终是一致的,在编写文档后调用视图时(确保文档出现在视图中),我似乎有两个选项可以保证一致性:

备选案文1

将上述代码中的replicateTo值更改为等于集群中附加节点的总数(减去活动节点),确保每个节点包含文档的副本:

代码语言:javascript
复制
cas, err := myBucket.UpsertDura(docToStore, valueToStore, 3, 4)

选项2

使用标准Upsert函数保存文档,但调用stale-mode设置为after-update的视图

代码语言:javascript
复制
_, err := bucket.Upsert(myID, &myDoc, 0)

vq := gocb.NewViewQuery("doc", "view").Stale(gocb.StaleMode(1))
err = bucket.ExecuteViewQuery(vq)

是否有其他可能以最有效的方式实现这一目标?基本上,我希望文档在保存后立即出现在所有相关视图中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 13:14:43

您需要将陈旧模式设置为false。如果设置了stale=ok,即使视图陈旧,Couchbase也不会刷新它。这样做的好处是改进了查询延迟。如果设置了stale=update_after,Couchbase将在返回陈旧结果后更新视图。如果设置了stale=false,Couchbase将刷新视图并返回最更新的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35339033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档