应用如何使用tiflash最佳实践

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
打算使用tiflash,但是应用如何修改的最少,才能使用tiflash

【背景】 做过哪些操作
我们现在做了实例级别的read isolation隔离


但是业务代码报
Can not find access path matching ‘tidb_isolation_read_engines’(value: ‘’). Available values are ‘tikv’.”
链接不上tiflash

【问题】 当前遇到的问题
打算使用tiflash,但是应用如何修改的最少,才能使用tiflash

【TiDB 版本】
v4.0.13
【附件】 相关日志及监控(https://metricstool.pingcap.com/)


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

2 Likes

先确认业务所需要使用的表 tiflash全部有,在设置instance级别的变量。

1 Like

参考:Tiflash 无法获取到数据

3 Likes

都有整个库都同步过去了,在创建JDBC链接的时候报这个错,里面有select 1这条语句

1 Like

这种情况就建议你在session级别配置

1 Like

对,可以在session级别设置

2 Likes

session级别在代码里如何设置?

1 Like

set @@session.tidb_isolation_read_engines = “逗号分隔的 engine list”;

或者修改你的jdbc代码,直接在开启会话时就设置

1 Like

加了

sessionVariables=tidb_isolation_read_engines=tiflash  报 Can not find access path matching 'tidb_isolation_read_engines'(value: 'tiflash'). Available values are 'tikv'

还有

set @@session.tidb_isolation_read_engines = "tiflash,tidb";

这个在java代码里怎么实现,直接用就可以吗?

1 Like

和执行sql一个原理,直接使用就可以

2 Likes

我们想在实例级别实现,这样代码改动最小,但是报
Can not find access path matching ‘tidb_isolation_read_engines’(value: ‘tiflash’). Available values are ‘tikv’

1 Like
[isolation-read]
engines = ["tikv", "tidb", "tiflash"]
1 Like

我们现在是这样

[isolation-read]
engines = ["tidb", "tiflash"]

报这个错
Can not find access path matching ‘tidb_isolation_read_engines’(value: ‘tiflash’). Available values are ‘tikv’

1 Like

最终使用实例级别的隔离
[isolation-read]
engines = [“tidb”, “tiflash”]
Can not find access path matching ‘tidb_isolation_read_engines’(value: ‘tiflash’). Available values are ‘tikv’
报这个错,应该是预发环境,TIKV强制下线数据有问题导致的

1 Like

那就是tikv的region有问题导致的

1 Like

生产环境也出现这个问题,我们新建了一张表,然后正好有应用上线重启,也报这个错了

可能是应用链接tiflash,检查库里是否所有表都同步到tiflash,有表没有同步到tiflash导致

同步了新建的表,一切正常

2 Likes

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