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 的问题