次のコードは、任意のドキュメントが永続的な方法で Couchbase クラスタのアクティブ ノードに保存され、1 つの追加ノードに複製されることを保証します。
cas, err := myBucket.UpsertDura(docToStore, valueToStore, 1, 1)
Couchbase Views が最終的に一貫性があることを考えると、ドキュメントを作成した後にビューを呼び出すときに一貫性を保証する (ドキュメントがビューに確実に表示されるようにする) という点で、2 つのオプションがあるように思われます。
オプション1
replicateTo
上記のコードの値を、クラスター内の追加ノードの総数 (アクティブ ノードを差し引いた数) と等しくなるように変更し、各ノードにドキュメントのコピーが含まれるようにします。
cas, err := myBucket.UpsertDura(docToStore, valueToStore, 3, 4)
オプション 2
標準Upsert
関数を使用してドキュメントを保存しますが、View を呼び出しますstale-mode
。after-update
_, err := bucket.Upsert(myID, &myDoc, 0)
vq := gocb.NewViewQuery("doc", "view").Stale(gocb.StaleMode(1))
err = bucket.ExecuteViewQuery(vq)
可能な限り最もパフォーマンスの高い方法でこれを達成するための代替手段はありますか? 基本的に、保存直後にドキュメントをすべての相対ビューに表示したいと思います。