3.20.10.0 版本

DBLE Release Notes

以下对 DBLE 3.20.10.0 版本的 Release Notes 进行详细解读。
文章主要分为以下三部分内容:
一、DBLE 项目介绍
二、新版本主要更新解读
三、完整 Release Notes
四、【新增】过往版本更新

https://github.com/actiontech/dble

一、DBLE 项目介绍

DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持;

  • DBLE 官方项目:

    https://github.com/actiontech/dble
  • DBLE 官方文档(已更新):

    https://actiontech.github.io/dble-docs-cn

  • 新版本 DBLE 下载地址及 Release Notes:
    https://github.com/actiontech/dble/releases
官方课程:
Tips:建议下载最新的 Releases 版本,下载 tar 压缩包即可,如有源码编译需求的,可以下载源码包。

二、新版本主要功能更新解

本次发版 3.20.10.0 是 DBLE 今年的第四次发版,也是 2020 年的最后一次发版。达到平均每季度一次的频率。

新版 DBLE 新增&重构功能 5 个,修复缺陷 24 个,向后兼容性调整 1 处。

致谢

  • 感谢以下人士对社区的贡献:@sunshinecb, @13611582598, @lcg72
  • 感谢 Github 用户提供的优质 issue,star 突破 700!
  • 感谢 QQ 群(669663113)和微信群内朋友提供的有效反馈,群用户突破千人!

主要更新:

1、管理端口访问 DBLE 状态

dble_information 提供了一系列表格来描述 DBLE 内部一些元数据,可以通过管理端口连接 DBLE 之后,use dble_information 之后查询内部的元数据信息。

以下是这些表格的详述:

  • 支持表格的投影(SELECT)

  • 支持表格的选择(WHERE)

  • 支持表格的连接(JOIN)

  • 支持表格的非关联 WHERE 子查询

  • 支持聚合运算

  • 支持排序

  • 支持标量函数

  • 支持 use dble_information

  • 支持 show tables [ like ]

  • 支持 desc|describe table xxx

  • 支持 show databases; 注意和 show @@database 不同

  • 部分表格支持 INSERT/UPDATE/DELETE

2、读写分离

3.20.10.0 版本 DBLE 支持单纯的读写分离,可以和分库分表功能分开单独使用。3.20.10.0 之前的版本,分库分表也支持读写分离,兼容该功能。

三、完整 Release Notes

特性:
  • [#1987] 添加可以从管理端口访问的 schema dble_information, 可以用 DQL 来查看 DBLE 状态。详见文末【参考1】

  • [#2075] 支持不分库分表的读写分离(Alpha 功能)。详见文末【参考2】

  • [#1987] 支持更多 whiteIP 格式。详见文末【参考3】

  • [#2013] 支持刷新连接池使用管理端命令。详见文末【参考4】

  • [#2015] 支持在配置或命令中设置 clientFoundRows 功能。详见文末【参考5】

缺陷修复:

  • [#2225] 期望将语句 select ... from table for update 发送给主服务器

  • [#2042] 当 AND 条件里面嵌套 OR 条件,EXPLAIN 结果可能错误

  • [#1851] 视图中的 Sharding_table 将导致从 split 导入文件失败

  • [#2180] 当 DBLE 函数转换包含 UTF8 时,结果不正确

  • [#2024] 使用 PreparedStatement.clearBatch() 和 conn.commit() 时,JDBC 批处理插入错误。感谢 @sunshinecb 报告此错误

  • [#1839] 设置会话事务隔离级别后,select 可能会 hang

  • [#2166] 字符串中包含分号,会导致无法执行 split

  • [#1855] Navicat15 连接 DBLE 会报错,感谢 @lcg72 报告此错误

  • [#2158] 使用了类型转换的简单查询,会报找不到路由

  • [#2143] 当分片字段为十进制类型时,查询结果可能为乱码

  • [#1997] 分片值是字符串类型,但引号内是十六进制类型,DBLE 将报告错误

  • [#1924] 不支持 SQL ALTER TABLE O_ORG COMMENT =。感谢 @13611582598 报告此错误

  • [#2063] 当子查询列为 * 并且是联合查询时,创建视图将发生异常

  • [#2135] 如果视图名称包含 schema 名称,则删除视图失败

  • [#1994] 当别名包含单引号时,DBLE 报告“找不到列”错误

  • [#2147] 当使用别名查询时,select ... information_schema.columns ...; 将引发异常

  • [#2153] 在 select ... 中,当“where”中的分区列值等于“”时,则会将其路由到所有节点

  • [#2026] DBLE 实际上不支持 minus,并且需要返回错误

  • [#2112] 当 connectionTimeout = 30 并且执行 manager cmd 时,实际超时超过 5 分钟

  • [#2073] 执行 SQL select id,c from test_shard group by c having id<=1 or c ='bb'; 将导致 NPE

  • [#2162] 不支持 INSERT ... SELECT LEFT JOIN

  • [#1806] 设置多用户变量并且用户变量之间有依赖,结果会不正确

  • [#2108] 无法在垂直模式的 schema 中删除视图

  • [#1961] show database 声明需要更严格的检查

打破向后兼容性:

  • [#2031] 从管理端移除 ROLLBACK 命令

参考链接:

【参考 1】2.001 manager_dble_information

https://github.com/actiontech/dble-docs-cn/tree/3.20.10.0/tag/2.Function/2.001_manager_dble_information.md

【参考 2】2.03 RW_Split

https://github.com/actiontech/dble-docs-cn/tree/3.20.10.0/tag/2.Function/2.03_RW_Split.md

【参考 3】1.03 whiteIP

https://github.com/actiontech/dble-docs-cn/tree/3.20.10.0/tag/1.config_file/1.03_user.xml.md#137-whiteipsip%E7%99%BD%E5%90%8D%E5%8D%95

【参考 4】2.1.21 fresh_conn

https://github.com/actiontech/dble-docs-cn/tree/3.20.10.0/tag/2.Function/2.1_manager_cmd/2.1.21_fresh_conn.md

【参考 5】2.2.6 cap_client_found_rows

https://github.com/actiontech/dble-docs-cn/tree/3.20.10.0/tag/2.Function/2.26_cap_client_found_rows.md

四、过往版本更新

有一些过往版本的小版本发出,修复一些 bug:

  • 2.19.11.4

    修复一些行数据为中文时候可能存在的乱码

    分片表多层 left join 全局表无法整体下发

  • 2.20.04.4

    修复一些行数据为中文时候可能存在的乱码

    分片表多层 left join 全局表无法整体下发

    reload @@config_all 返回 NPE

  • 3.20.07.2

    修复一些行数据为中文时候可能存在的乱码

    分片表多层 left join 全局表无法整体下发

    reload @@config_all 返回 NPE

    高可用命令的一些 bug

    show @@dbInstance 中的 size 列值显示成了 minCon,期望显示 maxCon

    表级别的 sqlMaxLimit 未生效

    集群的一些问题

本次的发版报道就到这里啦~