0

クラスターで vnode を使用します。

ノードのトークン スペースが変更されると (vnode で自動的に、新しいノードを追加した後の修復またはクリーンアップ中に)、datastax nodejs ドライバーが数分間多くの「操作がタイムアウトしました - X 応答のみを受け取りました」と表示されることに気付きました。 .

ONE および LOCAL_QUORUM の一貫性を使用してみました。

これは、移動直後にコーディネーターが正しいノードにヒットしなかったことが原因だと思います。これは論理的な動作 (データが移動された) のように見えますが、この特定の問題に本当に対処したいと考えています。

これを避けるために私たちがすべきことは何ですか?カスタムの再試行ポリシーがありますか? キャッシング?一貫性の変更?

動作例

これを見ると:

4/7/2016, 10:43am   Info    Host 172.31.34.155 moved from '8185241953623605265' to '-1108852503760494577'

それらのスパイクが見られます。

{
  "message":"Operation timed out - received only 0 responses.",
  "info":"Represents an error message from the server",
  "code":4608,
  "consistencies":1,
  "received":0,
  "blockFor":1,
  "isDataPresent":0,
  "coordinator":"172.31.34.155:9042",
  "query":"SELECT foo FROM foo_bar LIMIT 10"
}
4

1 に答える 1

1

これは、移動直後にコーディネーターが正しいノードにヒットしなかったことが原因だと思います。これは論理的な動作 (データが移動された) のように見えますが、この特定の問題に本当に対処したいと考えています。

実際、新しいノードを追加すると、トークン範囲が移動しますが、スケールアウトが完全に完了するまで、 Cassandra は古いトークン範囲を使用して読み取り要求を処理できます。したがって、あなたが直面している行動は非常に疑わしいものです。

このエラーを再現できる場合は、クエリ トレースを有効にして問題を絞り込んでください。

このエラーは、負荷が高く応答速度が遅いノードに関連している可能性もあります

于 2016-04-07T15:14:57.820 に答える