7 Star 16 Fork 17

OceanBase / obproxy

2022-11-03 19:52
linguanren

About this version

Item Description
Release time 2021-11-01
Release number V4.0.0
Commit number 9d5c90e562c61d9fcf8894993187aa20239db47e

New features

  • Support session information synchronization mechanism
  • Support public cloud shared proxy CPU resource tenant isolation
  • Support random routing
  • Support specifying ip routing
  • Support to configure tenant isolation
  • Support OB_MYSQL_COM_STMT_RESET
  • Support Primary Zone routing
  • Fast fail-fast for request probes is supported. POC use only
  • Support text PS
  • Support OB_MYSQL_COM_RESET_CONNECTION
  • Support connection string ClusterId custom separator
  • Support non-Alibaba cloud environment, use remote ip as virtual ip
  • 【OB Sharding】Support SHOW INDEX FROM statement
  • 【OB Sharding】Support truncate syntax
  • 【OB Sharding】Support SHOW FULL TABLES statement
  • 【OB Sharding】SHOW KEYS FROM statement
  • 【OB Sharding】Support SHOW FULL COLUMNS statement
  • 【OB Sharding】When the scan_all switch is false, union and union all are supported;
  • 【OB Sharding】When the scan_all switch is true, union all is supported
  • 【OB Sharding】show table, show index, etc. support like syntax
  • 【OB Sharding】Limited support for subqueries
  • 【OB Sharding】Support to adjust the memory limit according to the container memory size
  • Turn off the default parameter for fast-fail request probes. Off by default
  • Adjust the whitelist policy, no longer use the client_ip sent by the client, and directly use the tcp peer IP

Improvements

  • Add max_used_connections to reduce log printing when client connection is disconnected
  • locality changes support all_dummy refresh
  • Intercept configuration table multi-row insertion
  • Compatible with MySQL 8.0, HandleShake Capability adds multi related value
  • Optimize partially duplicated logs
  • Whitelist optimization, telnet detection directly disconnects

Bug fixes

  • Fix the memory problem caused by accessing internal tables and abnormally obtaining partition information
  • Fixed OB_MYSQL_COM_STMT_EXECUTE protocol, ref_cursor reported error fetch out of sequence under function
  • Fix the issue that the enable_client_ip_checkout parameter does not take effect when there is a connect attr parameter
  • Fix the Sharding scenario, the select table name of the sub-database and sub-table is case-sensitive, resulting in an error report
  • Fix the Sharding scenario, the select of sub-database and sub-table will be intercepted and unsupported syntax problem
  • Fixed an issue where a single SQL was sent multiple times, causing the SQL to take more than 40ms
  • Fix performance issues introduced by random partitions
  • Fix the problem of disconnection of changUser command under normal protocol
  • Fixed the problem that file systems such as xfs cannot accurately determine whether it is a directory using the readdir system call
  • Fix the problem that rslist startup fails more than 3 times and does not fall back to the original rslist
  • Fixed inaccurate sql routing caused by text PS escape symbols
  • Fix name super long text PS, prepare stage odp core
  • Fix text PS case insensitivity
  • Fix the error Unknown prepared statement handle when executing the text PS large request
  • Fix text PS date type route as partition key, text ps parameter routing is not allowed
  • Fix text PS trigger pl routing is not allowed
  • Fix text PS name contains illegal characters, execute error 1243
  • Fix the problem that user, value, etc. are used as keywords in lexical analysis
  • Fixed the problem that SSL cannot be used for the link between Client and Proxy
  • 【OB Sharding】Fixed that the hint with partition key cannot calculate the partition key when inserting
  • 【OB Sharding】Fixed that if the partition key is after the 64th column in the insert statement, it will report that it cannot be calculated
  • 【OB Sharding】Fix the problem of disconnection of sequence query
  • 【OB Sharding】Fix the core caused by not supporting sum(case when) in the function
  • When hot restart, if the old connection receives the OB_MYSQL_COM_PING command, the old Proxy will actively disconnect the connection
  • 【OBSharding】 Fix the syntax parsing problem of delete and update

版本信息

名称 描述
发布时间 2022 年 11 月 01 日
版本号 v4.0.0
提交号 9d5c90e562c61d9fcf8894993187aa20239db47e

功能

  • 支持 session 信息同步机制
  • 支持公有云共享代理 CPU 资源租户隔离
  • 支持 随机路由
  • 支持 指定 ip 路由
  • 支持 配置租户隔离
  • 支持 OB_MYSQL_COM_STMT_RESET
  • 支持 Primary Zone 路由
  • 支持 请求探测快速失败。仅限 POC 使用
  • 支持 文本 PS
  • 支持 OB_MYSQL_COM_RESET_CONNECTION
  • 支持 连接串 ClusterId 自定义分隔符
  • 支持非阿里云环境,使用 remote ip 作为 virtual ip
  • 【OB Sharding】支持 SHOW INDEX FROM 语句
  • 【OB Sharding】支持 truncate 语法
  • 【OB Sharding】支持 SHOW FULL TABLES 语句
  • 【OB Sharding】SHOW KEYS FROM 语句
  • 【OB Sharding】支持 SHOW FULL COLUMNS 语句
  • 【OB Sharding】scan_all开关是 false 的时候,支持 union、union all;
  • 【OB Sharding】scan_all开关是 true 的时候,支持 union all
  • 【OB Sharding】show table 、show lndex 等支持like 语法
  • 【OB Sharding】有限支持子查询
  • 【OB Sharding】支持根据容器内存大小调整内存上限
  • 关闭 请求探测快速失败 的默认参数。默认关闭
  • 调整白名单策略,不再使用客户端传过来的client_ip,直接使用tcp对端IP

优化

  • 客户端连接断开时,添加 max_used_connections 减少的日志打印
  • locality变更支持all_dummy刷新
  • 拦截配置表多行插入
  • MySQL 8.0 兼容,HandleShake Capability 新增 multi 相关值
  • 优化部分重复日志
  • 白名单优化,telnet 探测直接断连接

BUG修复

  • 修复访问内部表,异常获取分区信息导致的内存问题
  • 修复 OB_MYSQL_COM_STMT_EXECUTE 协议,ref_cursor 在function下报错fetch out of sequence 的问题
  • 修复 enable_client_ip_checkout 参数在有 connect attr 参数时不生效的问题
  • 修复 Sharding 场景,分库分表的 select 表名区分大小写,导致的报错问题
  • 修复 Sharding 场景,分库分表的 select 会被拦截不支持的语法问题
  • 修复 单条SQL 多次发送,导致的 SQL 耗时超过 40ms 问题
  • 修复随机分区引入的性能问题
  • 修复 changUser 命令在普通协议下断连接问题
  • 修复 xfs 等文件系统使用 readdir 系统调用无法准确判断是否为目录的问题
  • 修复 rslist 方式启动,失败超过3次,没有回退到原始 rslist 的问题
  • 修复文本 PS 转义符号引起的sql路由不准
  • 修复名字超长文本 PS ,prepare阶段odp core
  • 修复文本 PS 大小写不敏感
  • 修复文本 PS large request 中执行报错Unknown prepared statement handle
  • 修复文本 PS date 类型路由作为分区键,文本ps传参路由不准
  • 修复文本 PS 触发pl路由不准
  • 修复文本 PS 名字中含有非法字符,execute报错1243
  • 修复词法解析中把user、value等作为关键字的问题
  • 修复 Client 与 Proxy 链路无法使用 SSL 问题
  • 【OB Sharding】修复带分区键的 hint 在 insert 的时候, 无法计算分区键
  • 【OB Sharding】修复 insert 语句如果分区键在第 64 个列之后,会报无法计算
  • 【OB Sharding】修复 sequence查询断连的问题
  • 【OB Sharding】修复函数中不支持sum(case when)导致的core
  • 修复 热重启时,如果老连接接收到 OB_MYSQL_COM_PING 命令,老 Proxy 会主动断开连接的问题
  • 【OB Sharding】修复 delete 和 update 的语法解析问题
最后提交信息为: New features
C++
1
https://gitee.com/oceanbase/obproxy.git
git@gitee.com:oceanbase/obproxy.git
oceanbase
obproxy
obproxy

搜索帮助

53164aa7 5694891 3bd8fe86 5694891