问题现象
默认配置下,老版本升级 OceanBase 数据库 V4.x 之后每日合并时间拉长。
问题原因
OceanBase 数据库 V4.x 版本之后,所有动作拆分到租户,合并也同样拆分到租户,每个租户独立完成每日合并逻辑,因此每日合并参数均拆分租户,考虑到整体资源占用情况,主要有两个变化:
OceanBase 数据库 V4.x 之前版本,单个 OBServer 整体默认合并线程数是
min(10,cpu_count * 30%),OceanBase 数据库 V4.x 之后每个租户默认合并线程数是 6 个。OceanBase 数据库 V4.x 之前版本,OBServer 内合并调度线程定期轮训间隔是 30s,OceanBase 数据库 V4.x 之后每个租户定期轮训间隔默认是 120s。
问题的风险及影响
默认参数下,少部分场景(如单个大租户)OceanBase 数据库 V4.x 版本租户合并速度稍慢。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.1.0 GA(oceanbase-4.1.0.0-100001122023040322)及之后版本、V4.2.0 GA(oceanbase-4.2.0.0-100010082023083014)及之后版本、V4.2.1 GA(oceanbase-4.2.1.0-100000182023092722)及之后版本、V4.2.2 GA(oceanbase-4.2.2.0-100000082024011317)及之后版本、V4.2.5 GA(oceanbase-4.2.5.0-100000082024102022)及之后版本、V4.3.0(oceanbase-4.3.0.0-100000072024020200)及之后版本、VV4.3.5 GA(oceanbase-4.3.5.0-100000122024123020)及之后版本。
解决方法
根据业务需求,按需设置合并线程数和后台合并轮询间隔。
alter system set compaction_low_thread_score = xxx;
alter system set ob_compaction_schedule_interval = xxx;
规避方式
无需规避。