以下代碼保證任何給定的文檔都將以持久的方式保存到 Couchbase 集群中的活動(dòng)節(jié)點(diǎn),并復(fù)制到 1 個(gè)附加節(jié)點(diǎn):cas, err := myBucket.UpsertDura(docToStore, valueToStore, 1, 1)鑒于 Couchbase 視圖最終是一致的,在編寫文檔后調(diào)用視圖時(shí),在保證一致性方面,我似乎有 2 個(gè)選項(xiàng)(確保文檔出現(xiàn)在視圖中):選項(xiàng)1replicateTo將上面代碼中的值更改為等于集群中附加節(jié)點(diǎn)(減去活動(dòng)節(jié)點(diǎn))的總數(shù),確保每個(gè)節(jié)點(diǎn)都包含文檔的副本:cas, err := myBucket.UpsertDura(docToStore, valueToStore, 3, 4)選項(xiàng) 2使用標(biāo)準(zhǔn)Upsert函數(shù)保存文檔,但調(diào)用stale-mode設(shè)置為的視圖after-update_, err := bucket.Upsert(myID, &myDoc, 0)vq := gocb.NewViewQuery("doc", "view").Stale(gocb.StaleMode(1))err = bucket.ExecuteViewQuery(vq)是否有任何替代方案可以以最高性能的方式實(shí)現(xiàn)這一目標(biāo)?本質(zhì)上,我希望文檔在保存后立即出現(xiàn)在所有相關(guān)視圖中。
1 回答

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您需要將陳舊模式設(shè)置為 false。如果設(shè)置了 stale=ok,Couchbase 將不會刷新視圖,即使它是陳舊的。這樣做的好處是改善了查詢延遲。如果設(shè)置了 stale=update_after,Couchbase 將在返回過時(shí)結(jié)果后更新視圖。如果設(shè)置了 stale=false,Couchbase 將刷新視圖并返回最新的結(jié)果。
- 1 回答
- 0 關(guān)注
- 238 瀏覽
添加回答
舉報(bào)
0/150
提交
取消