V4.3.5_CE_BP3
版本信息
-
发布时间:2025 年 07 月 24 日
-
版本号:V4.3.5_CE_BP3
-
RPM 版本号:oceanbase-ce-4.3.5.3-103000062025072111
升级说明
-
支持从 V4.3.x 各版本升级到 V4.3.5 BP3 版本。
-
不支持 V4.2.x 系列或更低版本升级到 V4.3.5 BP3 版本。
-
自 V4.3.2 重构了多源数据的持久化格式,升级过程中需要对新旧多源数据格式进行转换,在分区数较多时预留相对充足的升级时间。
-
对于有持续写入的向量场景,需要进行索引重建。
-
V4.3.0/V4.3.1 版本升级到 V4.3.5 BP3 版本时,需要提前 1 天停止 transfer 任务。通过
alter system set enable_transfer = False;
停止,升级后再设置为True
打开。 -
V4.3.0/V4.3.1/V4.3.2 升级到 V4.3.5 BP3 版本混部过程中,租户 Leader 在老节点时会导致 transfer 失败,需要升级至 V4.3.5 BP3 版本才能正常执行 transfer。
-
V4.2.5 BP3、V4.3.5 BP1、V4.3.5BP2、V4.3.5 BP3 增加对 X86 环境运行的指令集要求。OBServer 会在启动前检查当前环境是否支持 AVX 指令集,如果缺少该指令集会禁止启动。将不支持 AVX 指令集的 X86 机器上的旧版 OBServer 升级至上述版本会造成无法启动和回退的情况,请务必关注。
特性增强
-
ODPS 外表适配 Storage API基于 Tunnel API 的 ODPS 外表,执行阶段对每个分区的扫描,都需要开启独立的 Session 来处理,而打开 Session 需要秒级延迟,这导致一些本身耗时非常小的查询,会花费时间在 Session 准备阶段。除 Tunnel API 外,ODPS 还提供了一种开放的 Storage API,支持直接访问 ODPS 的底层存储,提供了更多的优化策略和更好的读取性能,因此新版本适配支持了 ODPS Storage API,进一步提升外表访问性能。
-
物化视图功能增强新版本继续完善物化视图能力。主要包括物化视图支持
RENAME
能力、增量刷新支持外连接/UNION ALL
/非聚合单表功能、物化视图日志支持加列、嵌套物化视图支持级联刷新能力,同时修复DROP
物化视图卡住等多个问题,提升物化视图稳定性。 -
SQL 关键字限流SQL 关键字限流是 OceanBase 数据库提供的一种精细化流量控制能力,旨在解决数据库资源争抢问题,支持按用户、IP、数据库、表、SQL 类型(DML)和关键字组合限流,当 CPU、IO、内存等资源达到上限时,可以防止特定 SQL 语句过度消耗资源,避免因资源不足导致的查询超时,还可以应对突发流量和异常 SQL 访问。SQL 关键字限流功能适合应用在紧急 SQL 限流、日常高消耗 SQL 并发控制、核心业务隔离等场景。
-
对象存储支持 Azure Blob支持使用 Azure Blob 协议访问 Azure Blob 对象存储。
-
并行删表将
DROP TABLE
语句由串行执行改造为并行执行,提高频繁DROP TABLE
场景下的吞吐能力。 -
分区交换支持一级与二级分区表交换分区交换功能支持二级分区表的一级分区与一级分区表进行交换。
-
rescan 性能优化新版本对 nested loop 与 subplan filter 的 rescan 性能进行优化,增加 rescan 场景下快速生成 query range 的能力,去掉 subplan filter 下不必要的 rescan,减少性能消耗。基于 10000 条数据的表做 nested loop join,query range 生成耗时降低 60%,subplan filter 下,rescan 性能提升两倍以上。
-
PX 性能优化新版本针对 SQL 并行执行扫描中出现的长尾任务现象进行优化,自适应的对长尾任务再次划分,实现负载重均衡能力,加快查询速度,同时,通过降低表达式序列化、计划拷贝等开销,优化并行执行的性能。
-
统计信息增强V4.3.5 BP3 之前的版本,统计信息需要收集分区级和表级每一列的
MIN
/MAX
/NULL COUNT
/NDV
等聚合数据,并通过采样来估算数据的分布,误差较大,新版本借助存储层的 Skip Index 能力,对列存所有列收集块级别的更准确的列聚合数据,帮助优化器进行更准确的计划生成和优化。新版本还引入分区渐进式收集统计信息的方式,来解决大分区表统计信息收集耗时长导致的超时问题,提升系统的稳定性和数据的实时性。 -
Batch DML 性能优化当
INSERT
/REPLACE
/INSERT INTO ON DUPLICATE KEY UPDATE
等 Batch DML 遇到大量主键冲突和唯一索引冲突时,性能较差,新版本通过在存储层实现真正的批量接口对此类场景下的 DML 语句性能进行优化。新版本在插入 200 万全冲突数据场景下,对主键冲突,性能最高提升 42%,对唯一键冲突,性能最高提升 8%,优化效果显著。 -
旁路导入性能优化新版本针对旁路导入的执行逻辑进行性能优化,包括旁路导入排序算法、旁路导入向量化路径、csv 解析、column_conv 表达式、cs encoding 相关,在列存非分区堆表场景下,性能有最高 10% 的提升。
-
OBKV-HBase 兼容性增强新版本对 OBKV-HBase 的兼容性做了一系列能力增强。新增 Admin 接口,支持 HIve/Spark/Flink 直接访问 OBKV-HBase,支持建表时设置
kv_attributes
,以此来实现分区分裂、OBCDC 同步等场景对 OBKV 表的识别。OBKV-HBase 的大多数场景都是 IOT 的场景,数据量都在 PB 级别,用户会选择用共享存储来降本,IOT 的场景写多读少,且偏向于读热数据,为了满足用户需求, 新版本 OBKV-HBase 支持在共享存储模式下指定热分区进行查询等能力。另外,新版本还通过 hbase put 操作优化、分区计算逻辑优化、客户端 lsop 请求序列化优化等多项优化,来提升 OBKV-HBase 的性能。 -
OBKV 支持 Json在 OBKV 中支持 Json 数据类型,只支持 Json 文本的读写,不支持相关的 Json 表达式。
-
多模增强PL 新增
JSON_ARRAY_T
数据类型APPEND
相关成员方法。新版本对rb_or_agg
、rb_and_agg
、rb_or_cardinality_agg
、rb_and_cardinality_agg
等roaringbitmap
聚合计算函数做两阶段优化,加快计算速度。 -
向量数据库能力增强V4.3.5 BP3 持续增强向量能力,新增五大特性:
- 适配 ARM 架构,提升 ARM 架构下的查询性能和构建性能。
- IVF 索引优化, 通过增加对 IVF 聚类中心、码表的缓存,以及减少查询流程中的内存消耗,提升查询性能;通过并行化处理 IVF 索引构建,提升构建性能;提高 IVF-PQ 索引查询召回率,并支持 nbits 参数指定 PQ 量化的 Kmeans 聚类中心个数;新增支持索引后台优化任务,同时完善 IVF 索引对 cosine、ip 距离算法支持。
- VSAG 搜索 allocator 优化及 BQ 索引性能优化,支持新的语法用于传递向量索引语句参数。
- 向量索引内存易用性提升,新增向量内存用量估算功能、以及专门观测向量内存占用的视图,向量索引与 memstore 共享 tx_share_memory 的内存额度,总体内存占用不影响节点正常运行,同时,通过参数控制向量索引数据内存的占用。
- 小规格向量检索优化,提升小规格下基于内存的 HNSW 索引性能。
配置项变更
配置项 | 变更类型 | 变更说明 |
---|---|---|
ob_vector_memory_limit_percentage | 变更默认值含义 | 原默认值为 0,表示不为向量索引分配内存,创建索引会报错。变更为默认值为 0,表示自适应为向量检索分配内存。 |
auto_split_tablet_size | 变更默认值 | 默认值从 128MB 变更为 2GB。 |
default_table_merge_engine | 新增 | 新增租户级配置项,用于控制建表默认使用的 merge_engine 。 |
视图变更
视图 | 变更类型 | 变更说明 |
---|---|---|
[G]V$OB_VECTOR_MEMORY | 新增 | 显示租户向量索引模块内存使用统计信息。 |
[G]V$OB_PROCESSLIST | 新增列 | 新增列 TOP_TIME ,表示整个 PL 执行时间。 |
[G]V$OB_TABLET_COMPACTION_HISTORY | 新增列 | 新增列 EXECUTE_TIME ,表示合并任务消耗 CPU 的时间。 |
系统包变更
系统包 | 变更说明 |
---|---|
DBMS_MVIEW.REFRESH(‘mv_name’, ‘refresh_method’, nested=> true, nested_refresh_mode => ‘consistent/inconsistent’) | 1. 设置刷新嵌套物化视图的策略,当 nested 指定为 true 时级联刷新嵌套物化视图,nested 指定为 false 时,独立刷新嵌套物化视图。2. 设置级联刷新的一致性行为,指定 nested 为 true 时,指定 consistent 和 inconsistent 分别描述两种级联刷新行为,不指定 nested_refresh_mode 关键字时默认为级联非一致刷新。 |
语法变更
语法 | 变更说明 |
---|---|
CREATE MATERIALIZED VIEW mv1 REFRESH [individual/inconsistent/consistent] AS xxx |
创建嵌套物化视图时指定刷新策略: 1. 独立刷新定义为 individual 。2. 级联非一致性刷新,定义为 inconsistent 。3. 级联一致性刷新,定义为 consistent 。 |
ALTER MATERIALIZED VIEW mv1 REFRESH [individual/inconsistent/consistent]
|
修改嵌套物化视图时制定刷新策略,三种关键字的语义和创建物化视图的语义一致。 |
CREATE /*+ parallel(32) */ VECTOR INDEX idx1 ON t1(c2) WITH (type=ivf_pq, distance=l2, m=65536, nlist=65536, sample_per_nlist=256, nbits=8); |
1. 新增 IVFPQ 向量构建参数 nbits ,代表 pq 聚类中心的个数,意义是 pq 聚类中心的个数为 2 的 nbits 次方数个,意味着 pq code 的压缩后的大小为 nbits 。2. 变更 IVF 向量构建参数 nlist ,最大值从 65535 调整成 65536。3. 变更 IVFPQ 向量构建参数 m ,取值范围由 m > 0 调整为 [1,65536],默认值为 dim/8。 |
向量索引语句 | 新增向量索引语句级查询参数语法及相关参数。 |