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

  •  一、DBLE 项目介绍
  •  二、更新概况
  •  三、新特性
  •  四、升级兼容性

 一、DBLE项目介绍


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

DBLE官方项目:

https://github.com/actiontech/dble

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

DBLE官方文档:

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

可以详细了解DBLE的背景和应用场景,本文未涉及到的细节都可在官方文档获得;

DBLE下载地址:

https://github.com/actiontech/dble/releases

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


 二、版本概况

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

https://github.com/actiontech/dble/releases/tag/2.18.12.0%2Ftag

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

关于这点,官方的解释

  • DBLE 引入了专业的分布式测试团队, 所以 QA 同学天天报 Bug,dble越来越稳定;
  • 社区活跃度高,快速响应了大量的社区使用场景
  • DBLE 做为企业级分布式组件,还有大量的企业用户场景

DBLE 的 Release Notes 其实非常容易看懂,因为每条更新记录上都会描述对应的 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
  • 添加 show @@ Alert 的管理器命令(在企业版内支持)

//划重点:

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

· 结果正确性为第一要务

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

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

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

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

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

Bug#744 

https://github.com/actiontech/dble/issues/744

Bug#495 

https://github.com/actiontech/dble/issues/495

Bug#316 

https://github.com/actiontech/dble/issues/316

Bug#302 

https://github.com/actiontech/dble/issues/302

Bug#295 

https://github.com/actiontech/dble/issues/295

Bug#272 

https://github.com/actiontech/dble/issues/272

Bug#258 

https://github.com/actiontech/dble/issues/258

Bug#413 

https://github.com/actiontech/dble/issues/413

  • 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,如有建议欢迎留言告诉我们~