0

Couchbase から更新されたデータが必要なユースケースがあるため、couchbase にデータをクエリすると、次のようになります。

bucket.get.query(Query.simple(query))

更新されたデータはしばらくの間提供されますが、データベースのサイズが大きくなると、更新された一貫したデータが提供されなくなります。ここで、クエリはインデックスをスキャンし、それに応じて必要なデータを提供しています。したがって、一貫性のあるデータを取得するために、couchbase のドキュメントで提案されている ScanConsistency.REQUESTPLUS を使用しました。しかし、コードを変更して次のようなことをするとすぐに:

bucket.get.query(Query.simple(query, QueryParams.build().consistency(ScanConsistency.REQUEST_PLUS)
        .serverSideTimeout(10000, TimeUnit.SECONDS)))

毎回タイムアウト例外が発生し、結果が返されません。ここでデータの一貫性を実現する方法と、常にタイムアウト例外が発生する理由を説明してください。

スタックトレース:

java.lang.RuntimeException: java.util.concurrent.TimeoutException
[error]     at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
[error]     at com.couchbase.client.java.CouchbaseBucket.query(CouchbaseBucket.java:548)
[error]     at com.couchbase.client.java.CouchbaseBucket.query(CouchbaseBucket.java:491)

どんな助けでも大歓迎です。

4

1 に答える 1