前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式 | DBLE 3.21.06.0 来了!

分布式 | DBLE 3.21.06.0 来了!

作者头像
爱可生开源社区
发布2021-09-08 15:35:37
2.7K0
发布2021-09-08 15:35:37
举报

3.21.06.0 版本

DBLE Release Notes

以下对 DBLE 3.21.06.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.06.0 是 DBLE 今年的第二次发版。

新版 DBLE 新增&重构功能 8 个,修复缺陷 10+ 个,和旧版本的不兼容项调整 2 处。

致谢

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

主要更新:

1、提供了一个开关,决定是否将 in-Subquery 转换为 join

在此版本之前,我们会默认将in子查询尝试转为 join 来生成执行计划,现在我们增加一个全局配置项,由用户来决定是否应该转化。

2、查询计划的进一步优化

如果一条复杂查询的子查询和外部使用了同一张表,并且路由的结果也一致,那么这条 sql 应该被直接下发,而不是重写后下发算子

3、支持 XA 事务的残留检查

由于各种原因,mysql 节点层面可能留存 dble 生成的 Xid ;

这种情况下启动 dble,可能会出现'The XID alread exists'报错;

基于此,dble 在启动阶段、运行阶段将疑似残留 XA 事务问题暴露出来。

三、完整 Release Notes

特性:

  • [#2636] 支持动态更改线程池大小。更多详细信息,请参见 doc。
  • [#2646] 支持 Mariadb 的驱动设置 useBatchMultiSend。更多详细信息,请参阅 mariadb 文档。
  • [#2751] 观察 SQL 统计队列的利用率。更多详情见 doc。
  • [#2713] 支持 XA 事务的残留检查。更多详细信息,请参见 doc。
  • [#2408] 分片路由无法在“left join”和“union”处正确路由到正确的分片数据库,感谢@prostranger 报告改进。
  • [#2130][#2676] 提供了一个开关,决定是否将 inSubquery 转换为 join,感谢@LavieZhou 报告改进。
  • [#2641] 将druid升级到 1.2.6 版。
  • [#2648] 重构集群数据。如果升级需要重新创建[备份-删除-创建]数据。

主要缺陷修复:

  • [#2622] set autocommit 没有按预期工作。
  • [#2638] 开着慢日志,dble 可能会出现 oom。
  • [#2819] 使用读写分离时的事务失败问题,感谢 @boying52 报告错误。
  • [#2728] 检查表一致性问题,感谢 @lenovore 报告错误。
  • 有时复杂的查询可能会导致线程泄漏。
  • 当 group by 包含 = 时,结果可能会出错。
  • jumpStringHash 的默认设置已更改,升级需要重新设置。
  • 一些 NullPointException。

和旧版本的不兼容项:

  • [#2676] 提供一个开关,用于确定是否将 inSubquery 转换为 join。默认行为曾经为 true,现在为 false。
  • [#2648] 重构集群数据。如果升级需要重新创建[备份-删除-创建]数据。
  • 删除诸如 file @@... 、show @@syslog 之类的命令。
  • jumpStringHash 的默认设置已更改,如果升级需要重置。

如果您从旧版本升级升级到本版本,您应该先阅读版本变更的内容.

四、LTS 版本更新

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

  • 3.20.07.5 多语句在 lastInsertId 过大的时候包乱序 复杂查询可能导致的线程泄漏 开着慢日志,dble 可能会出现 oom
  • 3.20.10.5 复杂查询可能导致的线程泄漏 开着慢日志,dble 可能会出现 oom 检查表一致性问题 读写分离中 com_stmt_prepare 返回报文次序错误 set autocommit 未按照预期执行 偶现的 ArrayIndexOutOfBoundException
  • 3.21.02.2 复杂查询可能导致的线程泄漏 开着慢日志,dble 可能会出现 oom 检查表一致性问题 读写分离中 com_stmt_prepare 返回报文次序错误 set autocommit 未按照预期执行 偶现的 ArrayIndexOutOfBoundException sql 统计相关修复 使用读写分离时的事务失败问题

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱可生开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、提供了一个开关,决定是否将 in-Subquery 转换为 join
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档