tikv和tiflash高可用问题

V5.3版本,3台tikv,3台tiflash,tiflash全部挂掉后,为啥不能直接连接tikv,
还是提示 TiFlash server timeout。

1 个赞

根据官方文档

https://docs.pingcap.com/zh/tidb/stable/use-tiflash

如果表仅有单个 TiFlash 副本且相关节点无法服务,智能选择模式下的查询会不断重试,需要指定 Engine 或者手工 Hint 来读取 TiKV 副本。

你的tiflash3个节点全挂,和文档中单副本无法提供服务应该一样,需要人工介入指定 Engine 或者手工 Hint 来读取 TiKV 副本。

1 个赞

我个人的理解,一般用tiflash的时候,都是设置了优化器自动选择走tikv或者是tiflash。在tiflash全部挂掉之后,可能优化器并没有识别到tiflash不在线了,还是按照设置去判断sql应该走tikv还是tiflash,所以会出现TiFlash server timeout的情况。这个猜想还有待验证。
解决方法就是及时手动指定sql走tikv了

1 个赞

我也觉得这点确实感觉不太智能,如果tiflah副本都挂了智能选择模式下按说应该去走tikv保证业务可用优先,也许是为了ap的业务不打到tikv上影响tp的业务吧。

1 个赞

我和你想的一样,大量ap业务打到tikv上,对集群的影响还是挺大的

自 v5.0 版本开始,新增了系统变量 tidb_allow_fallback_to_tikv ,用于决定是否在 TiFlash 查询失败时,自动将查询回退到 TiKV 尝试执行。在设置该参数时,需要考虑对 TiKV 造成的影响:

https://docs.pingcap.com/zh/tidb/v5.0/system-variables/#tidb_allow_fallback_to_tikv-从-v50-版本开始引入

3 个赞

学习了:+1:

学习了:+1:

谢谢分享

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。