V5.3版本,3台tikv,3台tiflash,tiflash全部挂掉后,为啥不能直接连接tikv,
还是提示 TiFlash server timeout。
根据官方文档
https://docs.pingcap.com/zh/tidb/stable/use-tiflash
如果表仅有单个 TiFlash 副本且相关节点无法服务,智能选择模式下的查询会不断重试,需要指定 Engine 或者手工 Hint 来读取 TiKV 副本。
你的tiflash3个节点全挂,和文档中单副本无法提供服务应该一样,需要人工介入指定 Engine 或者手工 Hint 来读取 TiKV 副本。
我个人的理解,一般用tiflash的时候,都是设置了优化器自动选择走tikv或者是tiflash。在tiflash全部挂掉之后,可能优化器并没有识别到tiflash不在线了,还是按照设置去判断sql应该走tikv还是tiflash,所以会出现TiFlash server timeout的情况。这个猜想还有待验证。
解决方法就是及时手动指定sql走tikv了
我也觉得这点确实感觉不太智能,如果tiflah副本都挂了智能选择模式下按说应该去走tikv保证业务可用优先,也许是为了ap的业务不打到tikv上影响tp的业务吧。
我和你想的一样,大量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-版本开始引入
学习了
学习了
谢谢分享
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。