企业级开源数据库中间件 DBLE 3.23.08.0 版本发布!

DBLE 3.23.08.0 版本正式发布!以下是 Release Notes 详细解读。

一、DBLE 项目介绍

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

破壳日: 2017.10.24

开源技能: 数据水平拆分、读写分离、分布式事务支持、多分片算法、全局 ID、IP/SQL 黑白名单

特长: MySQL 语法兼容、复杂查询优化、低改造成本、成熟稳定、成熟技术栈

官方课程:

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

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

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

致谢

  • 感谢 Github 用户提供的优质 Issue,Star 突破 1024!
  • 感谢 QQ 群(669663113)和微信群内朋友提供的有效反馈。

主要更新:

1、支持 OLAP/OLTP 混合负载

新增 hybridTAUser 用户,DBLE 会将前端下发的 SQL 根据一些规则将 TP 型的路由到 MySQL 上,而 AP型 的路由到 ClickHouse 上,实现 AP/TP 负载自动识别下发。

TP/AP 路由规则:

  • 包含聚合函数的 SELECT 需要下发给 AP,具体指:min、sum、count、avg、max、STDDEV_POP、STDDEV_SAMP、VAR_POP、VAR_SAMP、group by。
  • 事务:ClickHouse 不支持事务,所以针对事务的情况都需要发给 TP。
  • 增删改:根据数据同步机制,ClickHouse 使用 binlog 同步 MySQL 数据,可以认为 ClickHouse 作为从,MySQL 作为主,这样的结构也就限制 DML 只能下发给 TP。

详情请见文档对应章节。

2、支持自主检测内部定时线程是否疑似 hang 和部分线程的中断/恢复操作

  • DBLE 自主检测内部定时线程(Timer\TimerScheduler)疑似 hang,如果出现疑似 hang,会有对应的告警和 dble.log 会有相应的 hang 关键字
  • 支持部分线程的中断/恢复操作
  • 当 DBLE 遇到某些业务的 hang 场景,期望能在不重启 DBLE 方式解决 hang 问题;可以通过 thread @@print 操作(存在与 jstack 一样的 stw 风险),来定位疑似问题内部线程;经过再三确认后,可以先尝试使用 thread @@kill name='?' 操作(内部采用 interrupt 提前退出任务的方式)中断当前线程,在一定部分场景下可以解决当前 hang 问题,然后根据情况决定是否需要对此线程进行 thread @@recover name=? 操作。

详情请见文档对应章节。

三、完整 Release Notes

特性:

  • #3831\] 支持 OLAP/OLTP 混合负载。更多详细信息,请参见 doc\[1

  • #3832\] ManagerFrontWorker 独立管理端线程池。更多详细信息,请参见 doc\[2

  • #3833\] 支持监控部分定时线程以及部分线程的中断操作。更多详细信息,请参见 doc\[3

  • #3834\] 优化并统一 DBLE 相关内部统计信息。更多详细信息,请参见 doc\[4

  • #3838\] 加强对捕获的线程"错误"异常的处理。

  • #3835\] DBLE 启动时,某些异步初始化任务需要很长时间

  • 修复一些 DDL 问题

  • 修复重新加载时 ClickHouse 同步变量错误

  • ChildTable 支持 specifyCharset 属性配置

和旧版本的不兼容项:

  • #3834\] 优化并统一 DBLE 相关内部统计信息。更多详细信息,请参见 doc\[4

四、LTS 版本更新

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

3.22.11.1

我们发布了 3.22.11.1,这是个 bug 修复版本。

  • 改善从连接池中获取连接的逻辑
  • 某些场景下执行大包语句出现 hang、Lost connection...
  • 支持 UPDATE/DELETE 多表针对分片表 JOIN 全局表
  • 后端连接初始化时出现半连接场景的处理
  • 主从切换后,业务端开启事务并进行回滚时,可能存在部分数据没有被回滚的现象
  • 连接池的扩缩容线程 connection-pool-evictor-thread 意外退出 慢日志过多阻塞,导致心跳失败、创建连接失败

3.22.01.6

我们发布了 3.22.01.6,这是个 bug 修复版本。

  • 主从切换后,业务端开启事务并进行回滚时,可能存在部分数据没有被回滚的现象
  • 开启 SQL 统计,并发线程没有抢到锁陷入死循环引起 CPU 使用率过高
  • 连接池的扩缩容线程 connection-pool-evictor-thread 意外退出
  • 慢日志过多阻塞,导致心跳失败、创建连接失败
  • 慢日志 bug 导致队列消费线程异常退出
  • 多语句下发出现 lost connection...
  • 加强 sequence 配置改动场景优化

3.21.10.15

我们发布了 3.21.10.15,这是个 bug 修复版本。

  • max 函数处理 datetime/timestamp/time 列时,精度丢弃了
  • 修改 dble_rw_split_entry中white_ips 列为 null,不生效
  • 加强 sequence 配置改动场景优化
  • 一些 NPE 的处理

引用参考

[1] HTAP: actiontech.github.io/dble-docs-c...

[2] 参数详情: actiontech.github.io/dble-docs-c...

[3] 线程处理: actiontech.github.io/dble-docs-c...

[4] 变更内容: actiontech.github.io/dble-docs-c...

相关推荐
uzong4 小时前
技术故障复盘模版
后端
GetcharZp4 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程5 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研5 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi5 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
阿华的代码王国6 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Jimmy6 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
AntBlack7 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
bobz9657 小时前
pip install 已经不再安全
后端
寻月隐君8 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github