企业级开源数据库中间件 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 启动时,某些异步初始化任务需要很长时间
  • [#3836] 后端的 lower_case_table_name 不一致时,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...

相关推荐
serve the people1 分钟前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端
罗政5 小时前
[附源码]超简洁个人博客网站搭建+SpringBoot+Vue前后端分离
vue.js·spring boot·后端
拾光师7 小时前
spring获取当前request
java·后端·spring
Java小白笔记8 小时前
关于使用Mybatis-Plus 自动填充功能失效问题
spring boot·后端·mybatis
JOJO___10 小时前
Spring IoC 配置类 总结
java·后端·spring·java-ee
白总Server11 小时前
MySQL在大数据场景应用
大数据·开发语言·数据库·后端·mysql·golang·php
Lingbug12 小时前
.Net日志组件之NLog的使用和配置
后端·c#·.net·.netcore
计算机学姐12 小时前
基于SpringBoot+Vue的篮球馆会员信息管理系统
java·vue.js·spring boot·后端·mysql·spring·mybatis
好兄弟给我起把狙12 小时前
[Golang] Select
开发语言·后端·golang
程序员大金12 小时前
基于SpringBoot+Vue+MySQL的智能物流管理系统
java·javascript·vue.js·spring boot·后端·mysql·mybatis