分布式 | DBLE 3.23.04.0 版本发布!


以下对 DBLE 3.23.04.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

官方课程:

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

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

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

二、新版本主要功能更新解

新版 DBLE 新增&重构功能 6 个,修复社区重要缺陷 5+,其他 bug 100+,和旧版本的不兼容项调整 1 处。

致谢

  • 感谢 Github 用户提供的优质 Issue,Star 突破 1024!

  • 感谢 QQ 群(669663113)和微信群内朋友提供的有效反馈,群用户突破千人!

主要更新:

1、针对分片表 JOIN 全局表,支持多表 UPDATE/DELETE

当 UPDATE 满足以下判断条件时,部分复杂 UPDATE 语句会在确保数据正确的情况下被下发执行。

  • 包括 UPDATE 语句操作多表的时候

    • 操作的全是全局表,并拥有同样的分片范围,并且 WHERE 条件中不含有子查询 

    • 所有操作的表都有条件显式路由到同一个节点,并且 WHERE 条件不含有子查询 

  • 包括 UPDATE 语句操作单表,但是 WHERE 条件中包含子查询时

    • 被操作的表格是单节点表,WHERE 条件中的所有表格都有条件能路由到同一个节点

    • 被操作的表格是全局表或者分片表,其余所有表格都是全局表,并且分片范围都能覆盖被操作的表格(需注意“分片范围”指的是 配置文件里面配的表分片范围,而不是经过 WHERE 二次筛选后的范围)

详情请见文档对应章节。

2、TCP 保活相关参数

DBLE 在启动时会创建与 MySQL 通信的连接池,但是这些连接可能在 TCP 三次握手时由于某些情况丢失了第三次握手的信息。此时这些连接被 MySQL 直接丢弃,而在 DBLE 侧并无感知,导致 DBLE 的连接池的连接的数量达不到预期设置的值,导致 DBLE 出现异常。

Linux 本身就有 keep-alive 机制,并提供对应参数控制,但是这是系统级别参数,一旦直接修改可能影响其他应用影响面较大。为了解决这个问题,DBLE 在 bootstrap.cnf 中提供相关参数配置并且只影响 DBLE 内的连接。

目前该功能为实验功能,对 JDK 版本有要求。

详情请见文档对应章节。

三、完整 Release Notes

特性:

  • [#3738] 针对分片表 JOIN 全局表,支持多表 UPDATE/DELETE。更多详细信息,请参见 doc,doc

  • [#3743] 对读写分离模式的 -DfakeMysqlVersion 设置规则进行了调整。更多详细信息,请参见 doc

  • [#3742] 调整最小栈值(-Xss)的默认值

  • [#3739] 支持调整 TCP 相关参数(实验功能)。更多详细信息,请参见 doc

  • [#3727] 优化全局序列加载内部逻辑

  • [#3745] 加强/优化支持 SSL 的内部逻辑代码,以及可能发展成内存泄漏的场景处理

缺陷修复:

  • [#3741] 读写分离中,当数据库的自增步长不等于 1 时,使用 JDBC 连接 DBLE 插入错误数据

  • [#3744] 读写分离中,执行大包语句不受 DBLE 设置的 maxPacketSize 的限制

  • [#3746] 扩缩容 connection-pool-evictor-thread 线程偶现退出

  • [#3747] 主从切换后,业务端开启事务进行 ROLLBACK 时,部分数据没有被回滚

  • 支持在管理端查询表时可以设置列别名

  • 调整一些日志打印

  • 解决一些 NPE 问题

和旧版本的不兼容项:

  • [#3743] 对读写分离模式的 -DfakeMysqlVersion 设置规则进行了调整。更多详细信息,请参见 doc

     

四、LTS 版本更新

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

3.22.07.3

我们发布了 3.22.07.3,这是个基于 3.22.07.01 的 bug 修复版本。

  • 某些场景下执行大包语句出现 hang、Lost connection...

  • 两张表通过非分片键关联查询,出现内存泄露

  • LOAD DATA local 执行报错

  • 主实例网络故障时,执行复杂查询导致 Business 线程 hang 住

  • 一些心跳问题

3.22.01.5

我们发布了 3.22.01.5,这是个基于 3.22.01.4 的 bug 复版本。

  • 改善从连接池中获取连接的逻辑

  • 后端连接初始化时出现半连接场景的处理

  • 某些场景下执行大包语句出现 hang、Lost connection...

  • 支持 UPDATE/DELETE 多表针对分片表 JOIN 全局表

  • 主从切换后,业务端开启事务进行 ROLLBACK 时,部分数据没有被回滚

  • 执行 LOAD DATA 出现 Lost connection... 和其他报错

  • 解决一些 NPE 问题

3.21.10.14

我们发布了 3.21.10.14,这是个基于 3.22.10.12 的 bug 复版本。

  • 开启 SQL 统计,并发线程没有抢到锁陷入死循环引起 CPU 使用率过高

  • 连接池的扩缩容线程 connection-pool-evictor-thread 意外退出

  • 改善连接池中取连接的逻辑

  • 后端连接初始化时出现半连接场景的处理

  • 某些场景下执行大包语句出现 hang、Lost connection...

  • 支持 UPDATE/DELETE 多表针对分片表 JOIN 全局表

  • 主从切换后,业务端开启事务进行 ROLLBACK 时,部分数据没有被回滚

  • 慢日志过多阻塞,导致心跳失败、创建连接失败

 

引用参考

[1] UPDATE:https://actiontech.github.io/dble-docs-cn/3.SQL_Syntax/3.2_DML/3.2.04_UPDATE.html

[2] DELETE:https://actiontech.github.io/dble-docs-cn/3.SQL_Syntax/3.2_DML/3.2.03_DELETE.html

[3] 版本变更:https://actiontech.github.io/dble-docs-cn/1.config_file/1.10_version_change.html

[4] TCP 参数:https://actiontech.github.io/dble-docs-cn/2.Function/2.38_tcp_parameter.html


相關推薦

2023-11-03

s 四、LTS 版本更新 一、DBLE 项目介绍 DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持; 破壳日:2017.10.24 爱好:开源 技

2024-03-03

PowerJob v4.3.8 已经发布,分布式任务调度中间件 此版本更新内容包括: PowerJob 主框架 PowerJob 全体成员祝大家龙年腾飞,新的一年身体健康,万事如意,阖家欢乐,幸福安康! Features Map/MapReduce增强 性能优化:底层执行

2022-07-12

状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题。 近日 Dapr 1.8 正式发布,这是自 2021 年 2 月发布 1.0 版本以来的第八次小版本更新,更新内容如下: 分布式锁 API(alpha) 分布式锁提供了从一个应

2023-03-20

PowerJob v4.3.2 已经发布,分布式任务调度中间件 此版本更新内容包括: PowerJob 主框架 BugFix 修复了工作流直接追加 String 内容时新增引号的问题 #307 修复了表前缀配置oms.table-prefix无法正常工作的问题 #584 修复了测试模式 p

2024-01-12

Memcached 1.6.23 现已发布,此版本仅影响 proxy code。请求调度 API 已重做。有关 API 的完整文档,请参阅此处。 官方提醒,有关此版本中新的 API 虽然已经做了大量工作来验证代码,但这仍然是一个很大的变化。建议用户在部署前仔

2023-05-04

分布式系统大行其道的当前,系统数据的准确性和正确性是重大的挑战,基于 CAP 理论,采用柔性事务,保障系统可用性以及数据的最终一致性成为技术共识 为了保障分布式服务的可用性,服务容错性,服务数据一致性 以及服

2023-04-21

技术能力和应用能力。 Taier 是一款好用又强大的大数据分布式可视化的 DAG 任务调度系统,旨在降低 ETL 开发成本、提高大数据平台稳定性。它让大数据开发人员可以在 Taier 直接进行业务逻辑的开发,而不用关心任务错综复杂

2023-03-11

时代的基础设施而设计。 功能 提供可扩展到高可用分布式集群的独立二进制文件 优化处理时序数据的柱状布局 提供灵活的索引选项 利用弹性计算资源的分布式并行查询 提供用于高级分析场景的原生 SQL 和 Python 脚本

2022-10-01

Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。Apache Dubbo 3.1.1 现已发布,具体更新内容包括: 错误修复和优化 相

2023-02-21

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。 版本亮点 Dapr Workflows(预览) Dapr

2022-10-04

PowerJob v4.2.0 已经发布,分布式任务调度中间件 此版本更新内容包括: PowerJob 主框架 Features 支持动态日志,可使用控制台配置调整 Job 使用的 Logger 及 LogLevel。 支持 SERVER(服务端日志,默认)、LOCAL(本地日志)、STDOUT

2023-03-25

计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。 存储节点(DN, Data Node) 存储节点负责数据

2023-06-14

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。 亮点 配置 API 现在达到 v1 稳定版

2022-06-25

Apache Dubbo 3.0.9 已发布,这是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。 具体更新内容包括: Bugfix 调用和配置相关:#10026