YugabyteDB 2.15.0.0中yb_enable_read_committed_isolation不生效
问题原因
- 2.13版本中的
yb_enable_read_committed_isolation是读已提交隔离级别处于实验阶段的专属TServer启动开关,从2.15.0.0版本开始,读已提交隔离级别正式GA,该实验开关被从代码中完全移除,因此启动时传入该参数会触发「未知命令行标志」报错。 - 2.15版本后读已提交能力默认内置在事务引擎中,不再需要单独通过启动标志打开特性开关,原有参数的相关配置逻辑已经合并到默认事务隔离级别的配置体系中。
解决方案
- 第一步:删除原有启动命令
tserver_flags中携带的--yb_enable_read_committed_isolation=true配置,避免参数校验失败。 - 按需选择隔离级别的配置方式:
- 如果需要将整个集群的默认事务隔离级别设置为读已提交,在启动时同时给Master和TServer节点添加默认隔离级别标志即可,修改后的启动命令参考:
/yugabyte/bin/yugabyted start --daemon=false --ui=false --initial_scripts_dir=/init-scripts \ --master_flags="--yb_default_transaction_isolation=read_committed" \ --tserver_flags="--yb_default_transaction_isolation=read_committed"
- 如果不需要修改集群全局默认配置,仅在部分业务场景需要使用读已提交隔离级别,无需调整任何启动参数,在业务连接会话中执行如下SQL即可为当前会话设置对应隔离级别:
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED;
提示:2.13版本实验阶段的读已提交实现和2.15正式GA版本的实现存在少量边缘逻辑差异,升级后建议对业务中依赖隔离级别的逻辑做简单验证,避免出现预期外的行为。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

