本文基于 DBLE 2.18.12.0 版本的Release Note 进行详细解读,文章主要分为以下四部分内容:

一、DBLE 项目介绍

二、更新概况

三、新特性

四、升级兼容性

一、DBLE项目介绍

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

DBLE官方项目:

如对源码有兴趣或者需要定制的功能的可以通过源码编译安装

DBLE官方文档:

DBLE下载地址:

Tips:建议下载最新的 Releases 版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包。

二、版本概况

距上一次10月24日程序员节日版一个多月,dble 社区又迎来了新的版本更新; 最新的 Release Note 请参考:

这次的更新可谓干货满满,新增了6个新特性,修复了60+缺陷; 版本推送快,让社区同学直呼,跟不上学习的步伐; 同时也有社区同学疑问,为什么有这么多缺陷出来?

关于这点,官方的解释:

DBLE 引入了专业的分布式测试团队, 所以 QA 同学天天报 Bug,dble越来越稳定;

社区活跃度高,快速响应了大量的社区使用场景;

DBLE 做为企业级分布式组件,还有大量的企业用户场景;

DBLE 的 Release Note 其实非常容易看懂,因为每条更新记录上都会描述对应的 issue 号,可以查看具体的 issue 描述来确认这条变更具体发生的变更细节。

大部分都issue都会遵循issue提交的模版规范填写,比如本次发布修复的第一个issue#819:增加了对 MySQL 官方 GUI 客户端 Workbench 8.0 的支持,描述了详细的版本,背景,复现流程,预期结果;

举个栗子:

(release note图)

(Bug 模版图)

// 划重点:

dble 继续维持月更的良好习惯

社区 issue 修复量大,维持了快速响应的风格

更新内容可以通过具体 issue 号获取细节

最后一条请求:大家提 issue 的时候尽量遵循 bug 模版的规范哦

三、新特性

本次重点功能更新主要增加了如下几点:

兼容了 MySQL 的 AuthSwichRequest 协议,从而增加对 MySQL 官方 GUI 客户端 Workbench 8.0 的支持 #819

对优化器的调整:使得部分语句执行计划可以直接透传,无需在中间件重写下推,改善了部分查询性能 #752

create table tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) } 语法支持 #757

将 Druid 从 1.0.31 升级到 1.1.10 版本,修复了很多 SQL 解析的 bug #749

错误日志打印增加了具体配置文件属性不对的描述,运维同学的福音,不用带眼镜查看 xml 是不是大小写不对了#905

//划重点:

1. 通过引入关系代数和查询树的方式, dble 解决了mycat 过往对复杂查询处理场景不全,导致结果集不对的问题;本次对优化器的调整继续加强,依旧遵循下面的基本宗旨:

· 结果正确性为第一要务

· 利用已有的全局/ER关系表

· 减少中间件与数据库之间的数据传输

· 尽量将能下发的计算下发给结点完成

· 减少中间件运算的空间/时间复杂度

2. 升级了 Druid ,过往老版本的 Druid 自身的 SQL 解析器存在一些 bug,社区同学如果踩到坑了,建议可以升级到 12 版本,这里一并感谢 Druid 社区对此的贡献:

3. 关于企业版功能的解释:提供图像化的安装配置界面

· 数据库的高可用

· 监控告警功能

· dble 集群功能

· dble 核心是完全开源免费的

· 基于 dble 核心,开发团队还会维护 dble 的企业套件

· 通过企业付费模式来维持社区的运营

· 监控告警的社区功能已经在路上了,不久大家应该能用上

4. 修复的 bug 相对比较零散,大家可以通过查看具体的 issue 号来简单了解是否命中来决策是否需要升级到 12 版本;

四、升级兼容性

本版本对配置文件的配置属性做了比较严苛的检查,会导致过往错配或者漏配的配置,在重启或者 reload config 的时候失败;为此我们在功能更新里贴心的增加了:错误日志打印出具体错误配置属性#905,建议您升级的时候做好过往配置的验证;#579

虽然我们升级了 durid,但是当前版本依然会有部分 SQL 解析场景的问题,注意避让 #788

Zookeeper 增加了多实例的支持,通过 myid.properties ipAddress=$ip:$port,$ip:$port 逗号隔开的方式可以配置,因此旧的 ipAddress 和 port 的配置方式被遗弃,升级的时候做好调整#766

以上内容是针对1月7日 dble 新版 2.18.12.0 的详细解读,后续我们也会有系列文章帮助大家更好的使用dble,如有建议欢迎留言告诉我们~