【产品公告牌 2025-04-29】OBProxy 社区版 4.3.4 正式发布!

ODP 4.3.4 是 OBProxy 4.3.x 的最新版本,进一步增强了SQL 代理、RPC 代理的路由能力,提升高可用能力,同时夯实了稳定性。

  • SQL 代理路由能力:支持亚洲字符集/字符序路由、支持函数作为分区键路由、复制表参与 JOIN 的场景做路由优化,降低远程路由、支持超过4K 的请求准确路由

  • RPC 代理路由能力:支持单分区表准确路由、分区信息获取保证原子性、LSOP 支持多tablet请求

  • 稳定性:新增全局配置项 server_protocol,明确 OBProxy 与 OBServer 之间的协议类型,协助排查协议问题,提升稳定性

  • 高可用:完善 RPC 代理的 congestion 处理流程,保证任意情况下,都不会将请求转发到异常 OBServer;异步化ls_id信息的获取流程,降低对 OBServer SYS 租户的压力

更多详情,敬请查看:OceanBase 数据库代理社区版 V4.3.4 Release Notes

25 个赞

:loudspeaker::loudspeaker::loudspeaker: Product Bulletin [Issue 2025-04-29]: OceanBase Database Proxy (ODP) V4.3.4 is officially released!

ODP V4.3.4 is the latest version in the V4.3.x series, which enhances the routing capabilities of SQL and RPC proxies, and improves high availability and stability.

  • SQL proxy routing capabilities: Supports routing based on Asian character sets/collations, functions as partitioning keys, optimized routing for JOIN operations involving replicated tables, and accurate routing for requests over 4 KB in length.

  • RPC proxy routing capabilities: Supports accurate routing for single-partition tables, guarantees atomicity in partition information retrieval, and supports multiple tablet requests for LSOP.

  • Stability: Introduces a global parameter, server_protocol, to specify the protocol type between ODP and OceanBase Database, assisting in troubleshooting protocol issues and enhancing stability.

  • High availability: Refines the congestion handling process for RPC proxies to ensure no requests are forwarded to abnormal OBServer ndoes under any circumstances, and asynchronously retrieves ls_id information to reduce pressure on the SYS tenant of OceanBase Database.

24 个赞

V4.3.4

版本信息

  • 发布时间:2025 年 04 月 25 日
  • 版本号:V4.3.4
  • RPM 版本号:obproxy-ce-4.3.4.0-1

版本定位

ODP 4.3.4 版本是 ODP 4.3.x 的最新版本,推荐云上、线下业务用于 POC 测试、生产。SQL 代理,新支持亚洲字符集、字符序的路由,支持函数作为分区键的路由,增强了核心路由能力,优化复制表场景和超过 4K 请求场景的路由策略,减少远程路由,提升路由性能,统一 ODP 与 OceanBase 数据库间协议的全局配置项,提升协议配置易用性。RPC 代理,支持单分区表准确路由和分区信息原子性获取,LSOP 支持多 tablet 请求,增强了路由能力,完善支持 congestion 处理流程,异步化处理 ODP ls_id 信息的获取,进一步提升系统稳定性。

关键特性说明

SQL 代理

路由能力完善
  • 字符集扩展全面兼容亚洲字符集,包括 ujis、euckr、cp932 和 eucjpms 等字符集及其对应的字符序。
  • 复制表参与 JOIN 的场景路由优化ODP 对复制表的路由策略是将请求随机路由到任一 OBServer 节点。如果复制表是 JOIN 的第一张表,按照随机路由策略,可能会将请求路由到非复制表的非 Leader 节点,发生远程路由,影响请求整体性能。ODP V4.3.4 对复制表参与 JOIN 的场景进行优化,调整路由策略为:ODP 识别到 JOIN 的第一张表为复制表时,不进行随机路由,而是使用 JOIN 后的表进行路由,从而缓解远程路由导致的性能问题。
  • 支持函数作为分区键路由ODP 分区计算,未支持建表时使用函数表达式作为分区键的场景,会导致分区计算失败,路由不准。ODP V4.3.4 对此场景进行完善,识别分区表元信息的建表信息,对存在函数表达式的分区键进行解析转换,保证分区计算的准确性。
  • 超过 4K 的请求路由ODP V4.3.4 之前版本,request_buffer_length 默认值为 4KB,对超过 4KB 且还没有解析到路由信息的请求,ODP 会因解析失败选择随机路由,可能会导致远程路由,对性能影响较大。业务中多次遇到此问题,因此 ODP V4.3.4 将 request_buffer_length 配置项默认值由 4KB 调大到 8KB,以确保超过 4KB 的请求也能准确路由。
协议配置易用性

ODP 有两个配置项控制 ODP 与 OceanBase 数据库之间的协议:enable_ob_protocol_v2enable_compression_protocol。在 ODP V4.3.1 支持单机模式性能优化后,ODP 与 OceanBase 数据库之间的协议改为自适应,不由配置项控制,实际使用的协议类型和配置项的值不一定完全一致,这导致在运维排查问题时,没有有效准确的手段确认目前使用的协议类型,增加排查问题难度。ODP V4.3.4 新增全局配置项 server_protocol,明确 ODP 与 OceanBase 数据库之间的协议,来提升协议配置的易用性。

RPC 代理

路由能力完善
  • 支持单分区表准确路由ODP 无法准确判断表是分区表还是非分区表,单分区表场景,走 RPC 代理路由时,有可能会遇到路由报错情况。ODP V4.3.4 优化逻辑,根据 OBServer 节点反馈错误信息进行路由重试,以支持单分区表的准确路由。
  • 分区信息获取保证原子性ODP 获取表信息是通过多条内部请求实现,请求间没有原子性,不能保证表信息的一致性。如果出现不一致,则计算分区会失败。ODP V4.3.4 优化逻辑,对获取的表信息增加实时校验以及重试,保证路由的准确性。
LSOP 支持多 tablet 请求

客户端通过 ODP 执行 LSOP 请求时,由于无法获取到分区信息,因此一个 LSOP 请求下只能有一个 tablet LSOP,客户端会将所有的 singleop 都放在一个 tabletop 下面,由 ODP 进行重组分发。ODP V4.3.4 支持 get_partition 接口,客户端可以通过 ODP 获取到 single op 的分区信息,将 LSOP 进行重组的过程可以由客户实现,因此 LSOP 能够支持多 tablet 请求。

完善支持 congestion 处理流程

ODP RPC 代理,支持异步处理 RPC request 对象,处理过程中会将请求处理状态机和 OBServer 节点 Net 隔离开,OBServer 节点的状态变化和 congestion 处理流程相对独立。OBKV 请求严格依赖当前计算出的分区信息以及对应的路由信息转发处理 SQL,高可用能力不完善,需要借鉴 ODP SQL 代理的策略,对 congestion 的处理流程可确保在任意情况下,都不会将请求转发到异常 OBServer 节点。

异步化处理 ODP ls_id 信息的获取

ODP V4.3.1 开始获取 ls_id 信息,同步依赖 tablet_id 的获取,导致整体的 SQL 处理相对比较复杂,且因为需要查询集群内部表,增加了对 OceanBase 集群 sys 租户的压力。为解决此问题,ODP V4.3.4 将 ls_id 的获取过程进行异步化拆解,对于 LSOP 请求增加异步化获取 tablet_id 的处理步骤。

兼容性变更

配置项 变更类型 变更说明
server_protocol 新增 用于控制 ODP 与 OceanBase 数据库之间的协议类型。
rpc_client_net_read_timeout 新增 用于设置 RPC 客户端网络读取超时阈值。
rpc_client_net_write_timeout 新增 用于设置 RPC 客户端网络写入超时阈值。
request_buffer_length 变更 默认值由 4KB 更新为 8KB,并扩展功能:当请求大小超过配置项设置阈值时,ODP 直接使用 tunnel 流式转发客户端请求。
tunnel_request_size_threshold 废弃 该配置型从 V4.3.4 版本开始已废弃,功能改由 request_buffer_length 代替。

支持的 OceanBase 数据库版本

支持 OceanBase 数据库 4.x 和 3.x 以及更低版本。根据使用的 OceanBase 数据库版本不同,对应推荐如下:

  • 当 OceanBase 数据库为 3.x 版本及更低版本时,建议使用 ODP V3.2.11。
  • 当 OceanBase 数据库为 4.x 版本时,推荐使用 ODP V4.3.1(LTS 版本)。

ODP V4.3.4 支持多项新功能,如果用户环境依赖新功能,推荐使用最新版本 V4.3.4;若不依赖新功能,推荐使用 LTS 版本 V4.3.1。

30 个赞

:fist: :fist: :fist:

22 个赞

:+1: :+1: :+1:

23 个赞

越来越好,加油! :fist: :fist: :fist:

21 个赞

:fist: :fist: :fist:

20 个赞

加油

17 个赞

:+1: :+1: :+1: :tada: :tada: :tada:
如果用户环境依赖新功能,推荐使用最新版本 V4.3.4;若不依赖新功能,推荐使用 LTS 版本 V4.3.1。

17 个赞

:+1::+1::+1::+1::+1::+1:

14 个赞

加油!

12 个赞

太长,能不能放连接,剪短点区别,详细进入链接会不会好一些

13 个赞

:fist: :fist: :fist:

8 个赞

祝越来越好

9 个赞

V4社区版一直没有这个proxy吗?

8 个赞

支持社区版4.3.4正式发布 :+1: :+1: :+1:

10 个赞

恭喜恭喜,祝越来越好

9 个赞

新版本新特性

8 个赞

:+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1: :+1:

7 个赞

这些都是面试题啊

8 个赞