使用tidb作为hive2的元数据数据库,如何解决事务隔离级别问题

【TiDB 使用环境】生产环境
【TiDB 版本】7.5.6
【操作系统】centos 8.6
【部署方式】机器部署
【集群数据量】10GB
【集群节点数】3节点
【问题复现路径】使用tidb v7.5.6作为hive2的元数据数据库,在启动hive2时报错:
The isolation level 'SERIALIZABLE' is not supported. Set tidb_skip_isolation_level_check=1 to skip this error

该参数设置后,对tidb和hive2会有什么影响?如何规避这个影响?除了设置参数,还有其它处理方式吗?

开启这个开关之后,如果对 tx_isolation 赋值一个 TiDB 不支持的隔离级别,不会报错,有助于兼容其他设置了(但不依赖于)不同隔离级别的应用。

https://docs.pingcap.com/zh/tidb/stable/system-variables/#tidb_skip_isolation_level_check

TiDB 只支持RC和RR两种隔离级别。

2 个赞

tidb不支持serializable事务级别的,设置这个参数只是设置成这个级别的时候不报错而已,如果 Hive 元数据在高并发场景下使用的话,可能有一定概率出现问题,建议用别的支持serializable事务级别数据库代替

2 个赞

TiDB 支持RC和RR

事务隔离级别有4种

读未提交

读已提交

TiDB 只支持RC和RR两种隔离级别。

read commit

串行化也支持

除了换库,没有别的选择了

读已提交

RC?

RC & RR

方法论指导

突破RC && RR

搞懂事务本质

TiDB支持RC和RR

调整 Hive2 隔离级别