企业级开源分布式中间件 | DBLE 3.23.08.0 版本发布!
以下对 DBLE 3.23.08.0 版本的 Release Notes 进行详细解读。
文章主要分为以下四部分内容:
一、DBLE 项目介绍
二、新版本主要更新解读
三、完整 Release Notes
四、LTS 版本更新
一、DBLE 项目介绍
DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持;
破壳日: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 公开课》课程,近期已同步至社区视频号和 B 站,欢迎观看!
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 遇到某些业务的 hang 场景,期望能在不重启 DBLE 方式解决 hang 问题;可以通过 thread @@print 操作(存在与 jstack 一样的 stw 风险),来定位疑似问题内部线程;经过再三确认后,可以先尝试使用 thread @@kill name='?' 操作(内部采用 interrupt 提前退出任务的方式)中断当前线程,在一定部分场景下可以解决当前 hang 问题,然后根据情况决定是否需要对此线程进行 thread @@recover name=? 操作。
-
DBLE 自主检测内部定时线程(Timer\TimerScheduler)疑似 hang,如果出现疑似 hang,会有对应的告警和 dble.log 会有相应的 hang 关键字
-
支持部分线程的中断/恢复操作
详情请见文档对应章节。
三、完整 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 connnection...
-
加强 sequence 配置改动场景优化
3.21.10.15
我们发布了 3.21.10.14,这是个 bug 修复版本。
-
max 函数处理 datetime/timestamp/time 列时,精度丢弃了
-
修改 dble_rw_split_entry中white_ips 列为 null,不生效
-
加强 sequence 配置改动场景优化
-
一些 NPE 的处理
引用参考
[1] HTAP:https://actiontech.github.io/dble-docs-cn/history/develop/2.Function/2.39_HTAP.html
[2] 参数详情:https://actiontech.github.io/dble-docs-cn/history/develop/1.config_file/1.02_bootstrap.cnf.html
[3] 线程处理:https://actiontech.github.io/dble-docs-cn/history/develop/2.Function/2.40_thread_cmd.html
[4] 变更内容:https://actiontech.github.io/dble-docs-cn/history/develop/1.config_file/1.10_version_change.html#config-title-3.23.08.0
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
通过Python脚本支持OC代码重构实践(二):数据项提供模块接入数据通路的代码生成
作者 | 刘俊启 导读 在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等。这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效率。这时通常通过重构的方式对已有代码结构进行改进和优化。在重构的工作中,大部分的工作是人工的方式完成,是一个耗时且容易出错的过程。对于研发人员来讲,在不改变软件的功能和行为的前提下,保证质量和效率完成对已有功能的重构,是一个极大的挑战。本系列以Python实现自动化的工具,支持代码重构过程的实践。 全文5529字,预计阅读时间14分钟。 在上一篇《通过Python脚本支持OC代码重构实践(一):模块调用关系分析》的内容中,重点介绍了使用Python实现模块调用关系的分析,并以.csv格式文件输出,导入到excel中评估重构影响面及每个数据项重构方式,在重构编码工作启动前明确了具体的工作及重构之后的收益,这对于立项的人力投入的决策会起到很关键的作用,特别是当团队资源稀缺时,把要做的事情讲清楚是一件很重要的事情。 同时也在上篇内容中提到,技术层面先实现一个模块间数据项通讯的机制(本系列文章中以数据通路...
- 下一篇
macOS Sonoma 中的 grep 命令被损坏
苹果开发者论坛上的一则帖子写道: macOS Sonoma 中的 grep 命令遭到了损坏,具体情况是出现断言失败 (Assertion Fails) 问题。 目前在新版系统中,macOS 上最新的grep会索引到当前字符串超出的范围,由于grep终止了当前行缓冲区带有一个额外的空字符(不是原始输入文件的一部分),所以它恰好触发了assert来检查当前字符(在字符串之外)有多少字节宽。 https://developer.apple.com/forums/thread/738862 这名发帖者表示,macOS 工程师原本是试图修复一个错误,没想到却破坏了另一个正常的功能 —— grep 命令。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6