3.21.02.0 版本

DBLE Release Notes

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

一、DBLE 项目介绍

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

破壳日:2017.10.24

爱好:开源

技能:数据水平拆分、读写分离、分布式事务支持、多分片算法、全局 ID、IP/SQL 黑白名单

特长:MySQL 语法兼容、复杂查询优化、低改造成本、成熟稳定、成熟技术栈

  • 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.21.02.0 是 DBLE 今年的第一次发版。

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

致谢

  • 感谢以下人士对社区的贡献:@evangoe, @Neil-Zhou, @314926481, @ClippedWings-renzy
  • 感谢 Github 用户提供的优质 issue,star 突破 780!
  • 感谢 QQ 群(669663113)和微信群内朋友提供的有效反馈,群用户突破千人!

主要更新:

1、general 日志

开启 general 日志会将所有到达 dble 的 sql 语句以 file 方式记录;开启后性能损耗在 3%~5%,需要观察下发 sql 情况时建议开启该功能。

  • 支持配置日志目录及文件名

  • 支持指定日志文件大小 rotate

  • 支持功能热开关

  • 支持管理命令查看当前配置

2、load data 批处理模式

在使用 load data 导数据时,如果期间发生网络超时等异常状况就会导致 load data 产生回滚。

本版引入了“分批导入”的处理方式:将需要导入的文件按照阈值(见 bootstrap.cnf)拆分成多个文件进行分批导入,这样在 load data 途中发生异常状况时,已经成功已导入的文件不会被回滚,并会停止导入发生异常后的文件。

再次基于源文件的 load data,DBLE 则会跳过已成功导入的文件继续 load data。
此外,在开启批处理模式后,如果待导入的文件按照既定 load data 语法规则(或不符合表结构等)存在错误,DBLE 会停止 load data 并会展示该文件错误的 sql 语句的内容,待错误修复后,再次 load data 仍会跳过已导入的数据,从而节约时间成本。
3、支持细粒度的 SQL 统计
可以按照表格、用户、前后端等维度统计 dble 中的事务、后端节点执行 sql 的(CRUD)次数、耗时、以及返回的行数(或影响行数);

可能对性能方面有一定程度的影响,请根据实际业务需求是否开启此功能;

  • 支持功能热开关

  • 支持设置 / 重置统计阈值

  • 支持管理命令查看当前配置

三、完整 Release Notes

特性:
  • [#2409] 支持 general log。使用详情请见 general log。

  • [#2428] 支持一些 sql 统计信息。更多详细信息,请参见 sql statistic manager 和tables。

  • [#2387] 支持服务器端游标。更多详细信息,请参见 4.4.3 Dble Flow。

  • [#2503] 添加新的 rwSplitMode。更多详细信息,请参见 rwSplitMode。

  • [#2386] 支持 dble 内部的 JSON 模式配置。如果是从旧版本升级,您应该知道升级注意。

  • [#1830] 支持展示并恢复群集中其他已暂停的 dataNode。

  • [#2351] 在服务器端口显示“dble 进程列表”。

  • [#2595] 支持 load data 批处理。更多详细信息,请参见 load data 批处理模式。

  • [#2594] 将 druid 升级至 1.2.3 版。

主要缺陷修复:

  • [#1843] 在同一数据主机中,先禁用 readHost,然后禁用 writeHost,报告 ERROR 消息,但实际禁用成功。

  • [#2497] 慢查询日志的 ArrayIndexOutOfBoundsException 和其他问题,这要感谢 @evangoe 报告了该错误。

  • [#2377] 不能同时使用show @@ processlist和RwSplitService。

  • [#2199] and … or statement 运行错误。

  • [#2152] 如果“ where”之后的列未指定表名,它将被路由到所有节点。

  • [#2342] shardingNode 在表配置中应该是唯一的。

  • [#2366] 重新加载配置失败时,在错误消息中删除无用的“ /”。

  • [#2105][#2389] 使用Navicat连接库无法显示表,感谢@314926481和@Neil-Zhou报告了该错误。

  • [#2034] 发生错误”Union field merge error, field not found:W.SCANNUM”, 感谢 @ClippedWings-renzy 报告了该错误。

  • [#2324] 显示哪个文件导致dry-run出错了。

打破向后兼容性:

  • [#2386] 支持内部的JSON模式配置。

  • [#2598] homePath 必须在bootstrap.cnf中进行显示配置。如果您从旧版本升级升级到本版本,您应该先阅读版本变更的内容。

四、LTS 版本更新

对于 LTS 的版本,有小版本发出,修复一些 bug:

  • 3.20.07.3

    修复一些连接池参数的错误

    修复一些告警错误

    对于 select…for update,由于权限问题,需要路由到主而不是从

    未建 dbgroup 时候执行 ddl 可能的错误

  • 3.20.10.2

    修复一些连接池参数的错误

    修复一些告警错误

    对于 select…for update,由于权限问题,需要路由到主而不是从

    未建 dbgroup 时候执行 ddl 可能的错误

    zookeeper 升级到 3.4.12

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