0

我们在集群上使用 vnode。

我注意到,当节点的令牌空间发生变化时(自动在 vnodes 上,在添加新节点后的修复或清理期间),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 回答