Releases
v4.1.0
V4.1.0_CE
About this version
Item
Description
Release time
2023-03-20
Release number
V4.1.0
Commit number
c3c380915f466c969c2e3fda9ad5cd7f8488c4cf
New features
Support for multiple-cluster Proxyro passwords
Support for rich client capabilities
Support for specifying Server IP routing
Support for the Latin1 character set
Support for transparently passing connection attributes with special prefixes
Support for distributed transaction routing
Support for MySQL binlog
Support for read-write separation and transaction splitting
Support for mapping VIPs to Cluster/Tenant through means other than MetaDB
Support for global-level weak-read and read-only configuration parameters
Support for GIS, JSON data types
Support for IPv6
Support for accurately routing access to the sys tenant OceanBase library in QA Mode
Support for ROWID routing under PS
Support for multi-column partition key routing
Support for obtaining column default value routing
Support for calculating expressions such as nvl, sysdate, mod, to_char, and substr
Support for is null and is not null routing
Support for XA Start statement hold
【OB Sharding】Support for rolling upgrades
【OB Sharding】Support for SHOW TOPOLOGY syntax
【OB Sharding】Added hint support for session stickiness: route to the previous non-scan-all statement shard
【OB Sharding】Support for information_schema.partitions and information_schema.coulmns
【OB Sharding】Support for SQL-level timeout control
【OB Sharding】Single-shard support for SQL syntax: batch update, batch delete, batch insert
Improvements
RTO optimization, less than 8S
OB 2.0 protocol optimization, reducing synchronous statements
OBProxy actively disconnects and sends Error packets to the client
Supports global-level PS cache
client_sock_option_flag_out default value is changed from 2 to 3
obproxy_error.log will print OBServer TraceId
Memory optimization, including connection memory and PS memory
RTO probe optimization, considering it normal when receiving Handshake packets
The default character encoding in HandShake packets is changed to 46
New enable_binlog_service configuration item, default false, indicating whether to enable binlog function
【OB Sharding】Log optimization
【OB Sharding】insert/update/delete statements support multi-table syntax
【OB Sharding】scan_all optimization
【OB Sharding】Black screen DDL optimization
Bug fixes
Fixed Core issue when accessing partitioned tables with RowID
Fixed issue where deleting text ps under Client 2.0 protocol does not return anything
Fixed issue where executing text ps under Client 2.0 protocol, then executing sql normally causes "requestId mismatch" error
Fixed issue where erroneous format of err packet in internal SQL causes client to hang
Fixed issue where enabling v2 protocol causes "4016" error and disconnection
Fixed issue where enabling "enable_ob_protocol_v2_with_client=true" causes disconnection during secondary sql routing
Fixed issue where connection id mismatch causes proxy disconnection
Fixed issue where enabling compression protocol causes disconnection
Fixed issue where using COM_CHANGE_USER command with username not in user_name@tenant_name format causes inability to use
Fixed issue where date type is inaccurately routed in certain scenarios
Fixed Core issue caused by abnormal to_timestamp parameter
Fixed Core issue caused by executing anonymous blocks in ODC
Fixed remote routing issue with to_date function
Fixed routing inaccuracy issue with timestamp with local time zone type list partitioning under Oracle mode
Fixed Core issue caused by some keywords not having pointers set
Fixed issue where detection optimization causes inability to whiteness
Fixed issue where SSL configuration retrieval fails
Fixed issue where enabling CPU resource isolation on public cloud causes inability to connect to cluster
Fixed issue where using int form for vid configuration does not take effect
Fixed issue with substr() causing index out of bounds
Fixed partition calculation error with range partitioning under "where c1 >20" condition
Fixed issue where type conversion fails and causes inability to route when there are NULL values in list and list column partitioning
Fixed Core issue introduced by global PS
Fixed issue where autocommit flag in OK packet returned by set autocommit=0 is still 1
Fixed issue where some fields in RespResult are not initialized in constructor, causing abnormal disconnection when used
Fixed issue where XA_START hold&sync PS 2-in-1 protocol supports complex parameter types
Fixed issue where XA_START hold&sync synchronous process cannot accept multiple OB20 packets
Fixed obproxy Core issue at oceanbase::obproxy::proxy::ObProxyExprCalculator::calc_partition_id_with_rowid_str
Fixed obproxy Core issue at oceanbase::obproxy::proxy::ObProto20Utils::analyze_compressed_packet_header
Fixed obproxy Core issue where old database saved in proxy session is used, causing obproxy core at oceanbase::common::ObLogger::log_message_kv
Fixed obproxy Core dump at oceanbase::obproxy::proxy::ObMysqlSM::setup_error_transfer
Fixed obproxy binary Core dump at obproxy/obutils/ob_proxy_sql_parser.cpp:890
Fixed obproxy Core dump at oceanbase::obproxy::proxy::ObMysqlSM::tunnel_handler_response_transfered
Fixed Core issue with oceanbase::obproxy::proxy::ObMysqlTransact::is_internal_request
Fixed odp Core issue with expression mod() calculation at oceanbase::obproxy::opsql::ObProxyExprMod::calc
Fixed obproxy Core issue at oceanbase::obproxy::proxy::ObMysqlVCTable::cleanup_entry
Fixed obproxy Core issue at oceanbase::obproxy::proxy::ObMysqlTransact::is_internal_request
Fixed Core issue at oceanbase::obproxy::proxy::ObProxyPartMgr::get_first_part at obproxy/proxy/route/obproxy_part_mgr.cpp
Fixed obproxy core issue at ObCongestionEntry::to_string in obproxy/obutils/ob_congestion_entry.cpp
Fixed a disconnect issue when executing insert statement with "binary" keyword in the "values" clause in OB Sharding
Fixed an issue in OB Sharding where the "case when" condition in the "where" clause is incorrectly identified as a sharding parameter
Fixed a core issue in OB Sharding when using unsupported expressions in the "order by" or "group by" clause
V4.1.0_CE
版本信息
名称
描述
发布时间
2023 年 03 月 20 日
版本号
v4.1.0
提交号
c3c380915f466c969c2e3fda9ad5cd7f8488c4cf
功能
支持 多集群 Proxyro 密码
支持 富客户端能力
支持 指定 Server IP 路由
支持 latin1字符集
支持 透传带有特殊前缀的 connection attr
支持 分布式事务路由
支持 MySQL binlog
支持 读写分离 和 事务拆分
支持 通过非 MetaDB 的方式设置 VIP 与 Cluster/Tenant 的映射
支持 全局级别的弱读、只读配置参数
支持 GIS、JSON 数据类型
支持 IPv6
支持 QA Mode 下访问 sys 租户 OceanBase 库准确路由
支持 PS 下 ROWID 路由
支持 多列分区键路由
支持 获取列 default 值路由
支持 nvl、sysdate、mod、to_char 和 substr 表达式计算
支持 is null 和 is not null 路由
支持 XA Start 语句 Hold
【OB Sharding】支持滚动升级
【OB Sharding】支持SHOW TOPOLOGY语法
【OB Sharding】新增 hint 支持会话粘滞:路由到前一个非 scan all 语句的分片
【OB Sharding】支持 information_schema.partitions 和 information_schema.coulmns
【OB Sharding】支持 SQL 级别的 timeout 超时控制
【OB Sharding】单分片支持SQL语法:批量更新、批量删除、批量插入
优化
RTO 优化,小于 8S
OB 2.0 协议优化,减少同步语句
OBProxy主动断连接,会发送Error包到客户端
支持全局级别的 PS 缓存
client_sock_option_flag_out 默认值从 2 修改为 3
obproxy_error.log 日志中会打印 OBServer TraceId
内存优化,包括连接内存、PS 内存
RTO 探活优化,收到 Handshake 包即认为正常
HandShake 包中默认的字符编码转为 46
新增 enable_binlog_service 配置项, 默认false,表示是否打开 binlog 功能
【OB Sharding】日志优化
【OB Sharding】insert/update/delete 语句支持多表语法
【OB Sharding】scan_all 优化
【OB Sharding】黑屏 DDL 优化
BUG修复
修复 带 RowID 访问分区表的 Core 问题
修复 Client 2.0 协议下,文本ps删除无返回
修复 Client 2.0 协议下,执行文本ps异常场景再正常执行sql,报错requestId mismatch
修复 内部SQL err packet回包格式错误导致客户端hang住
修复 开启v2协议,报错4016,断连接的问题
修复 enable_ob_protocol_v2_with_client=true,sql二次路由断连接
修复 connection id mismatch 导致 proxy 断连接
修复 开压缩协议后,断连接的问题
修复 COM_CAHNGE_USER命令,用户名不符合user_name@tenant_name格式导致无法使用的问题
修复 date 类型在部分场景下路由不准确的问题
修复 异常 to_timestamp 参数导致的 Core 问题
修复 ODC 执行匿名块导致的 Core 问题
修复 to_date 函数远程路由问题
修复 Oracle模式下 timestamp with local time zone类型list分区路由不准的问题
修复 部分关键字没有设置指针导致的 core 问题
修复 探测优化导致一直无法洗白的问题
修复 SSL 配置获取失败问题
修复 公有云上开启 cpu 资源隔离,集群连不上的问题
修复 vid 使用 int 形式下发配置不生效
修复 substr()下标越界问题
修复 range 分区在 where c1 >20 条件下,分区计算错误问题
修复 list,list column 分区,如果表中有 NULL 值,进行类型转换会失败,导致无法路由的问题
修复 全局 PS 引入的 Core 问题
修复 set autocommit=0 返回的 OK 包中的 autocommit 标记还是 1 的问题
修复 RespResult 某些字段在构造函数中未初始化,导致使用时判断异常断链的问题
修复 XA_START hold&sync PS 二合一协议中支持复杂参数类型
修复 XA_START hold&sync 同步过程中无法接受多个 OB20 包的问题
修复 obproxy core at oceanbase::obproxy::proxy::ObProxyExprCalculator::calc_partition_id_with_rowid_str
修复core at oceanbase::obproxy::proxy::ObProto20Utils::analyze_compressed_packet_header
修复 proxy session中保存的老database被使用后,obproxy core at oceanbase::common::ObLogger::log_message_kv
修复 oceanbase::obproxy::proxy::ObMysqlSM::setup_error_transfer core dump
修复 obproxy binary core dumped at obproxy/obutils/ob_proxy_sql_parser.cpp
修复 oceanbase::obproxy::proxy::ObMysqlSM::tunnel_handler_response_transfered core dump
修复 oceanbase::obproxy::proxy::ObMysqlTransact::is_internal_request Core 问题
修复 表达式 mod() 计算,odp core at oceanbase::obproxy::opsql::ObProxyExprMod::calc
修复 obproxy core oceanbase::obproxy::proxy::ObMysqlVCTable::cleanup_entry 问题
修复 obproxy core at oceanbase::obproxy::proxy::ObMysqlTransact::is_internal_request 问题
修复 core at oceanbase::obproxy::proxy::ObProxyPartMgr::get_first_part at obproxy/proxy/route/obproxy_part_mgr.cpp
修复 obproxy core at ObCongestionEntry::to_string at obproxy/obutils/ob_congestion_entry.cpp
【OB Sharding】修复 insert 的时候,如果 values 中包含了_binary ,执行断连接的问题
【OB Sharding】修复 where子句中使用case when,case when条件被识别为分库分表参数
【OB Sharding】修复 order by/group by 后面是不支持的表达式出 Core 的问题
You can’t perform that action at this time.