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)
どんな助けでも大歓迎です。