在Cassandra中,Hinted Handoff(HH)仅在满足一致性等级时才会发生。此外,客户端无法读取提示。一致性水平>任何情况下,使用HH都可以改善写入和读取可用性。由于在线复制品不足以满足一致性要求,因此请求仍然失败 使用Hinted Handoff有什么意义?交易能力表现? 为什么不将故障并返回节点与其他副本节点同步(即重新复制)?
答案 0 :(得分:2)
暗示切换只是额外的反熵措施。即,当节点重新联机时,您不必立即运行修复并且数据一致(如果有轻微中断)。
我想用复制一直处理这个问题太复杂了,因为你必须以某种方式标记未被复制的数据等。基本上你会再次有类似于暗示切换的东西。
基本上是在最小的中断时最大化群集的写入吞吐量。它是可配置的,您可以在您描述读取和写入都涉及高一致性级别的情况下禁用它。
另外,你必须运行“重新复制”,即无论如何修复。因为暗示的交接无法真正解决所有问题。
我个人在R-CL中使用它们:ONE,W-CL:ONE,RF:2,NODES:3。它们非常有用,因为我们在群集上进行维护和滚动重启时保持了写入吞吐量。所以我认为它在W-CL< RF。
然后又有这样的意见:
https://blog.threatstack.com/scaling-cassandra-lessons-learned
实际上,只需在配置中禁用它们即可。在长时间停机或负载峰值期间丢失数据太容易了,并且如果节点由于负载峰值而出现故障,您只是将环绕问题传递出去,最终会使多个或所有节点关闭。我们从未在Cassandra上遇到过这种情况,但是在支持暗示切换的其他系统上也有这种情况。