0

次のコードは、任意のドキュメントが永続的な方法で 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-modeafter-update

_, err := bucket.Upsert(myID, &myDoc, 0)

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

可能な限り最もパフォーマンスの高い方法でこれを達成するための代替手段はありますか? 基本的に、保存直後にドキュメントをすべての相対ビューに表示したいと思います。

4

1 に答える 1