3.21.10.0 版本
DBLE Release Notes
以下对 DBLE 3.21.10.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
二、新版本主要功能更新解读
本次发版 3.21.10.0 是 DBLE 今年的第三次发版。
新版 DBLE 新增&重构功能 3 个,修复缺陷 7+ 个,和旧版本的不兼容项调整 0 处。
主要更新:
1、支持单个 dble 脱离/回归集群
在部分场合下,集群状态下的 dble 可能需要临时断开和集群中心(如zookeeper)的连接。
典型的应用场景是:集群中心需要进行升级/维护时。
在版本<3.21.10 , 唯一的方式是配置修改为单机版并重新启动 dble;需要加回来时,改会原来的配置并重启 dble 。但这对业务影响很大,通常在生产环境下难以接受。
dble提供了一个脱离集群的指令,可以在不重启的情况下,临时断开和集群中心的连接,让 dble 以一个 伪集群模式 的单实例方式运行。等运维工作结束后,还可以重新加入集群。
详情请见文档对应章节
2、新的流量控制
在之前的 dble 版本中,当进行大文件 load 以及大结果集查询的过程中,都有可能由于数据的发送不及时造成数据在 dble 内存中堆积,当条件足够的时候甚至有可能造成 dble 服务的 OOM ,进而影响服务的稳定运行。
在最初 2.20.04 中由社区开发者@ssxlulu提供了对于这部分流量控制的实现,通过连接级别的写队列长度,进行数据加载/获取的负反馈调节,从而实现在数据 load 和大结果集查询过程中的内存使用情况稳定,在此基础上,我们又做了一些改进。
无论当前端连接写回客户端过慢造成积压(比如中间件和客户端之间网络不好可能会造成此现象)或者是后端已读取但未处理的 MySQL 数据积压过多(比如 dble 所在机器 cpu 性能不够),都可以停止从后侧数据库读取,减轻 dble 本身的压力。
详情请见文档对应章节。
三、完整 Release Notes
特性:
- [#2866] 支持单个 dble 脱离/回归集群. 更多详细信息,请参见 doc 。
- [#2844] 支持默认的分片模式 [alpha 功能]。更多详细信息,请参见doc 。
- [#2845] 新的流量控制:添加后端读取水位。更多详细信息,请参见doc 。
主要缺陷修复:
- [#11] EPollArrayWrapper.epollWait 可能导致 100% CPU。
- [#2896] show @@dbInstance 命令,READ_LOAD 和 WRITE_LOAD 始终显示为 0 。
- [#2747] fakeMySQLVersion 不支持 MariaDB 10.x,感谢@lenovore 报告此问题。
- [#2750] 支持`add/truncate/dop partition` , 感谢@13611582598 报告此问题。
- [#2611] 优化er表问题,感谢@jmbkeyes 报告错误。
- [#2828] 三表join,结果可能有误,感谢@mwhei 报告 bug 。
- 有时复杂的查询可能会导致内存泄漏。
和旧版本的不兼容项:
无
四、LTS 版本更新
对于 LTS 的版本,有小版本发出,修复一些 bug:
3.20.07.7
- 执行 dbGroup @@disable name ='dbGroup1';偶现 hang 住
- 连接创建失败时,连接数统计的问题导致的连接泄漏
- mysql 实例从 disable 到 active 状态后,dble 不可用
- 有时复杂的查询可能会导致内存泄漏
3.20.10.7
- 执行 dbGroup @@disable name ='dbGroup1';偶现 hang 住
- 连接创建失败时,连接数统计的问题导致的连接泄漏
- mysql 实例从 disable 到 active 状态后,dble 不可用
- 有时复杂的查询可能会导致内存泄漏
- [#2873]set autocommit=true 的问题
- 9066 端口执行 show @@connection.sql 报错
3.21.02.4
- 执行 dbGroup @@disable name ='dbGroup1';偶现 hang 住
- 连接创建失败时,连接数统计的问题导致的连接泄漏
- mysql 实例从 disable 到 active 状态后,dble 不可用
- 有时复杂的查询可能会导致内存泄漏
- [#2873]set autocommit=true 的问题
- 管理端口执行 show @@connection.sql 报错
- 集群环境下 dble 执行 ddl 语句 hang 住
- show @@dbInstance 命令,READ_LOAD 和 WRITE_LOAD 始终显示为 0
3.21.06.2
- 执行 dbGroup @@disable name ='dbGroup1';偶现 hang 住
- 连接创建失败时,连接数统计的问题导致的连接泄漏
- mysql 实例从 disable 到 active 状态后,dble 不可用
- 有时复杂的查询可能会导致内存泄漏。
- [#2873]set autocommit=true 的问题
- 管理端口执行 show @@connection.sql 报错
- 集群环境下 dble 执行 ddl 语句 hang 住
- show @@dbInstance 命令,READ_LOAD 和 WRITE_LOAD 始终显示为 0
本次的发版报道就到这里啦~
近期好文:
分布式 | dble 纯读写分离功能-隐式提交支持度汇总
分布式 | 关于 druid 连接池参数问题
分布式 | DBLE 关联查询下压优化