2

カウチベース サーバー 2.0 (開発プレビュー 4) を実行しており、.net クライアント ライブラリ バージョン 1.2 を使用しています。

ドキュメント (json) をデータベースに追加すると、数秒 (10 秒未満) で、.net クライアント ライブラリを介して GetView 経由でこのドキュメントを取得しようとすると、最初のクエリで常に古い値が返されます。2 番目のクエリでのみ、実際の値が返されます。

REST APIを介して同じクエリを実行すると、実際の値が返されます。

誰でもこれに関する情報を提供できますか?

4

1 に答える 1

3

Couchbase のビューのデフォルトの動作は、ビューのインデックスを段階的に更新することです。インクリメンタル更新を実際にトリガーするビューをリクエストしています。つまり、最初にビューを要求したときに、サーバー上でインデックスが更新されるようにトリガーしました (インデックスを作成する必要があるのは、新しいドキュメントのみです)。そのため、GetVew を 2 回目に呼び出した時点で、新しいドキュメントのインデックスが作成されています。

このように、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でさらに詳しい情報を入手できます。

-- ジョン

于 2012-07-03T15:59:25.277 に答える