如何调整呢?尝试过调整,没有找到方式
对tidb没影响
RC & RR
是不是有点重 ,轻量级mysql不是可以么
要搞自主可控,全量替换mysql
嗯,没有好的方案,大数据hive组件的元数据只能用支持serializable的数据库了
序列化的事务,tidb好像本来就不支持吧
只是为了参数兼容
Hive2 强制使用 SERIALIZABLE,TiDB 不支持。开启 tidb_skip_isolation_level_check=1 后,TiDB 会静默降级为 RR,不影响数据、不影响性能、Hive 正常运行。更安全的方案是修改 Hive 配置强制使用 READ-COMMITTED
其实改成rc合理级别就行
hive改了这个有什么风险吗
读未提交
没什么特别要求的化hive隔离级别应该可以改成rc
hive主要是用作分析工作,没有必要搞这种严格的事物隔离吧
TiDB 默认支持RC和RR两种隔离级别
这个参数的作用是告诉 TiDB:“如果客户端请求设置我不支持的隔离级别,不要报错,直接忽略该请求并返回成功。”
The isolation level 'SERIALIZABLE' is not supported.,数据库管理系统不支持将事务的隔离级别设置为“SERIALIZABLE”,可以考虑使用其他隔离级别 如REPEATABLE READ(大多数数据库默认的隔离级别),它提供了比READ COMMITTED更高的数据一致性保障。
不同的隔离级别会对系统的并发性能产生影响。
设置参数只是绕过报错,隔离强度不会真提升,需搭配悲观事务 + 并发管控降低风险;更彻底的方案是修改 Hive 隔离级别配置或更换原生兼容的元数据库
tidb_skip_isolation_level_check=1 只跳过报错,不会让 TiDB 实现 SERIALIZABLE;Hive 请求会按 TiDB 实际支持的隔离语义执行,元数据并发更新时仍可能出现 Hive 原本依赖串行化避免的冲突或异常。优先在 Hive/DataNucleus 侧将事务隔离级别配置为 TiDB 支持的 READ-COMMITTED 或 REPEATABLE-READ,并做并发建表、分区和锁测试;若 Hive 版本强制要求 SERIALIZABLE,则应使用其官方支持的 MySQL/PostgreSQL 元数据库。必须临时跳过时,仅对 Hive 连接会话设置并监控 metastore 事务重试与一致性,避免全局放开。