我们在群集中使用vnodes。
我注意到当节点的令牌空间发生变化时(自动在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"
}
答案 0 :(得分:1)
我想这是因为协调员在移动后没有点击正确的节点。这似乎是一种逻辑行为(数据被移动),但我们真的想解决这一特定问题。
事实上,在添加新节点时,会有令牌范围移动,但Cassandra仍然可以使用旧令牌范围提供读取请求,直到扩展完全结束。所以你所面临的行为非常可疑。
如果您重现此错误,请激活查询跟踪以缩小问题范围。
错误也可能与负载较重的节点有关,而且响应速度不够快