【问题标题】:Cassandra nodejs driver time out after a node moves节点移动后 Cassandra nodejs 驱动程序超时
【发布时间】:2016-04-07 23:14:57
【问题描述】:

我们在集群上使用 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"
}

【问题讨论】:

    标签: node.js cassandra datastax-enterprise datastax-startup


    【解决方案1】:

    我想这是由于协调器在移动后没有击中正确的节点。这似乎是一种合乎逻辑的行为(数据已被移动),但我们确实想解决这个特殊问题。

    事实上,当添加新节点时,令牌范围会发生移动,但 Cassandra 仍然可以使用 old 令牌范围服务读取请求,直到横向扩展完全完成。所以你面临的行为非常可疑。

    如果您可以重现此错误,请激活查询跟踪以缩小问题范围。

    该错误也可能与负载过重且响应速度不够快的节点有关

    【讨论】:

    • 我更详细地检查了日志,显然这只发生在这个特定的主机上。有趣的是,它总是从一个范围移动到另一个范围,然后又回到以前的范围。我将尝试对此进行调查。谢谢你的回答,正如你所说,这似乎无关。
    • 回答了另一个相关问题stackoverflow.com/questions/36593636/…
    猜你喜欢
    • 2017-04-05
    • 1970-01-01
    • 2016-11-17
    • 2015-11-16
    • 2019-01-31
    • 2018-11-05
    • 1970-01-01
    • 2014-03-16
    • 2018-07-17
    相关资源
    最近更新 更多