DBLE 2.19.11.0 来了,全局表功能重置!!!

伴随着各行各业的节后复工,DBLE 2.19.11 也在今天顺利发版,不期而至!

以下对 DBLE 2.19.11.0 Release Notes 的进行详细解读,文章主要分为以下四部分内容:

  • 一、DBLE 项目介绍
  • 二、新版本概况
  • 二、主要更新解读
  • 三、完整 Release Notes

一、DBLE 项目介绍

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

DBLE 官方项目:    
https://github.com/actiontech/dble    
如对源码有兴趣或者需要定制的功能的可以通过源码编译安装

DBLE 官方文档(已更新):    
https://actiontech.github.io/dble-docs-cn    
可以详细了解 DBLE 的背景和应用场景,本文未涉及到的细节都可在官方文档获得

新版本 DBLE 下载地址及 Release Notes:    
https://github.com/actiontech/dble/releases

官方课程

点击学习《DBLE 快速上手》 实操视频 + 图文稿!

点击学习《DBLE 公开课》 进阶课程

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

二、新版本概况

距离 2.19.09.0 发布时隔 90 天后 ,2.19.11.0 版本发布;新版 dble 新增重构功能 13 个,修复缺陷 28 个,向后兼容性调整 2 处;

首先致谢

  • 感谢以下人员对社区做出的贡献:

    @ Lordess,@ zhaoshan86,@ liuxinwang,@ ssxlulu

  • 感谢 Github 用户提供的优质 issue
  • 感谢 QQ 群(669663113)内朋友提供的有效反馈

三、主要更新解读

这次版本更新的主要特性是针对全局表检查方式[#1558]

1、全局表检查简介

全局表是 dble 中一种特殊类型的表格,一般来说认为在一个全局表 table_a 所有分布的节点上,table_a 因同时满足以下两个条件:

  • 拥有相同的表格结构
  • 拥有相同的表格数据

但事实上在系统和 dble 的运行过程中,可能由于一些不可避免分布式事务方面的误差,导致在长时间运行之后,不同节点上面的 table_a 上面的数据不一致。

为了及时的发现问题并不再造成更进一步的错误,dble 中采用定时进行表格数据检查的方式对于 table_a 中的数据一致性进行检查,并及时把检查的结果通知到运维人员。

2、支持自定义全局表检查的开发及使用

有关全局表检查方式的详细说明,请参考官方手册:

手册地址:https://github.com/actiontech...

四、完整 Release Notes

We have released a new version 2.19.11.0.
Firstly, we must thanks to the following people for their contributions to our community:
@Lordess, @zhaoshan86, @liuxinwang,@ssxlulu

Release Notes:

Features:

  • [#1607] Change the default value of bufferPoolPageNumber
  • [#1585] Add filter condition for some manager command
  • [#1575] add an manager command to show recently(doing or done) query detail stage
  • [#1566] Add command show @@data_distribution to show data distribution for table
  • [#1564] Add STAGE for show @@connection.sql
  • [#1558] Remove old global table check. Add new general global table check & allow customization for global table check
  • [#1544] Heartbeat can check if backend is read_only
  • [#1543] Add propery autocommit to DBLE's server.xml
  • [#1539] strength usage of view, support MySQL view for vertical sharding
  • [#1527] Add new command show @@Questions
  • [#1526] Change primaryKey into cacheKey in schema.xml
  • [#1521] Support dump file without create table stmt when splitting dump file
  • [#1362] Support kill query statement

For more details, please read the document.

Bug-fixes:

  • [#1532] LOAD DATA INFILE doesn't encode data before sending it to MySQL when dealing with a small data file, thanks @Lordess report the bug.
  • [#1489] Complex query using one view in another view will get an error column not found
  • [#275] Result set is not merged because of union query on different global tables
  • [#563] Incorrect result when natural join on the global table
  • [#622] Illegal "create table " syntax execute success for global table
  • [#775] Query [load data ...] to global table, column _dble_op_time may need special handle
  • [#1582] DataHost's heartbeat attribute is not synced after reload @@config_all in ZooKeeper mode
  • [#1451] SQL select a as b from table group by a returns error when b is one of the table's columns names
  • [#1513] Commit XA transaction will return 'lost connection' error when killed one of the backend connection before XA end phase
  • [#1638] Restart mysql node causing the error: the data source[XXX] can't reach. Please check the dataHost status
  • [#1538] Change dataHost from disabled to enabled, the heartbeat does not recover
  • [#1622] Memory Leak in Some cases
  • [#1524] DDL separate from general queries
  • [#1525] Syntax 'limit 0' will return all rows, thanks @ssxlulu report the bug.
  • [#1453] Use user variables in [order by] with union got error
  • [#1618] Compound SQL statement returned package error
  • [#1583] Use DBLE as DBLE's backend, thanks @zhaoshan86 report the bug.
  • [#1643] Execute query "show warnings" causing an error : Lost connection to MySQL server during query
  • [#1465] Schema.xml datanode sums of attributes values of name and database should equal
  • [#1602] Explain a query with an uppercase table alias when [lower_case_tables_name=1], it will report error
  • [#1541] If there are too many datanodes(>700) for a few dozen datahost, starting/reloading will become slow because of testConn
  • [#1507] Load data returns an error when there is a separate line "" in file
  • [#1466] [select b.id from test join sharding_2_t1 b on test.id/b.id>1.001] result not consistent with mysql
  • [#1459] Global sequence does not work correctly for the no-sharding table, thanks @liuxinwang report the bug.
  • [#1455] Query [SELECT * FROM t1 a left join t2 c on a.id=c.id and a.id=@id_a;] report field not found:@id_a
  • [#1417] The column type returned by DBLE is inconsistent with the MYSQL database.
  • [#1403] Packet ID error for LOAD DATA multi-Queries
  • [#753] dble does not support reserved words as table name or column name even use backtick

Breaking backward compatibility:

  • [#1558] Remove old global table check. Add new general global table check & allow customization for global table check
  • [#1526] Change primaryKey into cacheKey in schema.xml

我们发布了新版本2.19.11.0。
首先,我们必须感谢以下人士对我们社区的贡献:
@ Lordess,@ zhaoshan86,@ liuxinwang,@ ssxlulu

发行说明:

特性:

  • [#1607]更改bufferPoolPageNumber的默认值
  • [#1585]为某些管理命令添加过滤条件
  • [#1575]增加管理命令,用于展示某个连接最近的SQL状态细节(执行中步骤)
  • [#1566]添加命令show @@ data_distribution以显示表的数据分布
  • [#1564]为 show@@ connection.sql添加STAGE列
  • [#1558]移除原有的全局表检查方式,添加通用的全局表检查并允许自定义全局表检查方式
  • [#1544]心跳可以检查后端是否为只读
  • [#1543]在DBLE的server.xml中添加属性autocommit
  • [#1539]视图的用法增强,支持垂直拆分view透传
  • [#1527]添加新命令 show@@ Questions
  • [#1526]将schema.xml 中的primaryKey更名为cacheKey
  • [#1521]拆分转储文件时,支持不带“ create table” stmt的转储文件
  • [#1362]支持kill query语句

缺陷修复:

  • [#1532]处理小数据文件时,LOAD DATA INFILE在将数据发送到MySQL之前未对数据进行字符集编码,谢谢@Lordess报告该错误。
  • [#1489]在某视图中使用另一个视图的复杂查询将得到错误“未找到列”
  • [#275]对不同全局表的union查询,结果集未合并
  • [#563]在全局表上使用“自然联接”时,结果不正确
  • [#622]非法“create table”语法对全局表执行成功
  • [#775]查询[加载数据...]到全局表中,列_dble_op_time可能需要特殊的句柄
  • [#1582]在ZooKeeper模式下,在reload @@ config_all之后,DataHost的心跳属性未同步
  • [#1451]当b是表的列名之一时,SQLselect a as b from table group by a返回错误
  • [#1513]在XA End阶段之前杀死后端连接之一时,提交XA事务将返回“lost connection”错误
  • [#1638]重启mysql节点,导致错误并无法恢复:the data source[XXX] can't reach. Please check the dataHost status
  • [#1538]将dataHost从disabled更改为enabled ,心跳无法恢复
  • [#1622]在某些情况下会导致内存泄漏
  • [#1524]代码重构:DDL与常规查询分开
  • [#1525]语法'limit 0'将返回所有行,感谢@ssxlulu报告该错误。
  • [#1453]在[union]中将用户变量用于[order by]将返回错误
  • [#1618]复合SQL语句返回包错误
  • [#1583]将DBLE嵌套作为DBLE的后端,感谢@ zhaoshan86报告该错误。
  • [#1643]执行查询“show warnings”导致错误:Lost connection to MySQL server during query
  • [#1465]Schema.xml数据节点名称和数据库的属性值总和应相等
  • [#1602]dble在[lower_case_tables_name = 1] 下使用大写表别名的查询会发生Explain错误
  • [#1541]如果几十个数据主机的数据节点过多(> 700),则由于testConn线性逻辑,启动/重新加载将变慢
  • [#1507]当文件中有单独的行“ ”时,load data将返回错误
  • [#1466] [select b.id from test join sharding_2_t1 b on test.id/b.id>1.001]结果与mysql不一致
  • [#1459]对于非分片表,全局序列无法正常工作,谢谢@liuxinwang报告该错误。
  • [#1455]查询[SELECT * FROM t1 a left join t2 c on a.id=c.id and a.id=@id_a;]报告字段未找到:@id_a
  • [#1417] DBLE返回的列类型与MYSQL数据库不一致。
  • [#1403] 多语句的LOAD DATA包 packet ID错误
  • [#753] 不支持关键字作为表名或者列名,即使使用了重音符号

打破向后兼容性:

  • [#1558]删除旧的全局表检查逻辑。添加新的通用全局表检查并允许自定义全局表检查
  • [#1526]将schema.xml 中的primaryKey更名为cacheKey

爱可生开源社区
426 声望207 粉丝

成立于 2017 年,以开源高质量的运维工具、日常分享技术干货内容、持续的全国性的社区活动为社区己任;目前开源的产品有:SQL审核工具 SQLE,分布式中间件 DBLE、数据传输组件DTLE。