分布式 | 如何为 DBLE 贡献源码?中间件开发需要掌握的技能都有什么?

2021-05-27
阅读 3 分钟
1.4k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。不定时更新个人公众号WU双。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | dble 纯读写分离功能-隐式提交支持度汇总

2021-05-10
阅读 2 分钟
2.4k
作者:马莹乐爱可生研发团队成员,负责 mysql 中间件的测试。本人是测试技术爱好者,欢迎大家试用 dble 新功能~本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 关联查询下压优化

2021-04-09
阅读 3 分钟
1.1k
本文摘要:在某些特殊情形下,DBLE无法将关联查询语句正确下压到数据节点,进而导致执行异常。本文详细分析了此种现象产生的原因,并提供了解决方案。

分布式 | DBLE 网络模块源码解析(三)

2021-02-23
阅读 1 分钟
1.2k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 网络模块源码解析(二)

2020-12-21
阅读 8 分钟
1.4k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 网络模块源码解析(一):网络 IO 基础知识

2020-12-15
阅读 2 分钟
1.1k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 之通过 explain 进行 SQL 优化

2020-06-15
阅读 2 分钟
2.7k
作者:肖亚洲爱可生 DBA 团队成员,负责项目中数据库故障与平台问题解决,对数据库高可用与分布式技术情有独钟。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | dble 中分布式时间戳方式的全局序列

2020-06-02
阅读 4 分钟
1.3k
作者:吴金玲爱可生 dble 项目团队成员,主要负责 dble 相关的日常测试工作,擅长对 dble 中出现的问题进行排查。热爱测试工作,余生欲将测试工作进行到底。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 之 SQL 解析

2020-04-28
阅读 2 分钟
2.6k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE 心跳检测模块解析

2020-04-08
阅读 6 分钟
1.4k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE LOAD DATA 功能实现解析

2020-03-12
阅读 6 分钟
2.8k
作者:路路热爱技术、乐于分享的技术人,目前主要从事数据库相关技术的研究。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

分布式 | DBLE Release Notes 详细解读 2.19.11.0

2020-02-25
阅读 6 分钟
1.4k
DBLE 2.19.11.0 来了,全局表功能重置!!! 伴随着各行各业的节后复工,DBLE 2.19.11 也在今天顺利发版,不期而至! 以下对 DBLE 2.19.11.0 Release Notes 的进行详细解读,文章主要分为以下四部分内容: 一、DBLE 项目介绍 二、新版本概况 二、主要更新解读 三、完整 Release Notes 一、DBLE 项目介绍 DBLE — 企业级开...

微课程 | 第十八课《慢查询日志》

2020-01-21
阅读 2 分钟
3.4k
[链接] 今天是微课程《DBLE 快速上手》的最后一课:慢查询日志。 我们 DBLE 的慢查询日志兼容这两个工具: MySQL 的 mysqldumpslow Percona 的 pt-query-digest 我们来看一下慢日志的简单演示: [链接] 我们通过管理端查看慢查询日志功能是否开启,没有开启。我们通过 enable  语句将慢查询日志开启。开启后我们要设置一...

技术分享 | MySQL 优化:JOIN 优化实践

2020-01-21
阅读 4 分钟
4.9k
近期刚好学习了丁奇老师的《MySQL 实战 45 讲》中的 join 优化相关知识,又刚刚好碰上了一个非常切合的 join 查询需要优化,分析过程有些曲折,记录下来留作笔记。

微课程 | 第十七课《进阶功能 Trace》

2020-01-17
阅读 2 分钟
1.8k
[链接] 这一节我们直接通过视频来向大家展示一下 trace 功能。 trace 功能开启 先登陆一个流量端口,然后通过一个 set trace=1 语句去把 trace 功能打开。 [链接] trace 功能的好处 select * from 某表,类似于 MySQL 的 show profile 语句,可以看具体执行语句在下发的各个环节耗时是什么样的。然后通过 show trace 就...

分布式 | dble 分页技巧_主键是拆分列_连续翻页

2020-01-17
阅读 4 分钟
3k
作者:钟悦就职于某大型国有银行,多年从事 MySQL 和分布式中间件的方案设计与实施工作;资深 MySQL 数据库专家,架构师;DBLE 开源项目积极贡献者。

微课程 | 第十六课《进阶功能 Explain》

2020-01-14
阅读 2 分钟
1.7k
Explain 可以用来分析分布式查询计划,看到下发的 SQL 的结果。除了这个功能之外,我们还能做一些 SQL 的调优。比如说这样一个例子。

微课程 | 第十五课《权限及黑白名单》

2020-01-10
阅读 2 分钟
3.5k
权限是对表的 DML 权限控制,包括 insert、update、select、delete 这样的权限是否允许。黑名单是继承自 druid 的一个解析器功能,解析完 SQL 觉得不安全,可以在解析完这个层面就直接禁止掉这些不安全的操作。白名单是我指定某个用户和 IP 才有登录的许可,否则是不能登录的。

微课程 | 第十四课《管理端介绍》

2020-01-06
阅读 1 分钟
3k
DBLE 的管理端就是刚刚做的一大堆管理端的命令的 9066 端口,包括 create databases 命令等。说是管理端实际上是承担了管理和监控两个职责。比如说,select 或者 show 命令其实都是用来监控,来展示 DBLE 内部的是什么样子。比如说,kill /reload 都是控制的命令。下面我们通过管理端 reload 命令演示管理端能做什么,怎...

微课程 | 第十三课《全局序列视频演示》

2020-01-03
阅读 2 分钟
2.6k
 [链接] 上一期我们介绍了全局序列的原理,接下来我们通过视频来演示一下全局序列功能。我们来看一下这两种全局序列是怎么工作的。 时间戳算法 首先是 snowflake ,也就是所谓时间戳算法。 [链接] 默认的是直接使用时间戳算法,在实际的使用中先设置一下。在 server.xml 里面有一个叫 sequnceHandlerType 的属性。值为 2...

微课程 | 第十二课《全局序列介绍》

2019-12-27
阅读 2 分钟
2.7k
我们先来介绍一下全局序列,我们DBLE目前支持四种全局序列。说是四种,如果按照他的内核区分是两种,只不过这两种方式放在不同的载体里面成为了四种。

微课程 | 第十一课《Hint 简介和演示》

2019-12-23
阅读 2 分钟
3k
我们先介绍一下 hint,hint 是一种有效注释,将业务应用指定一个分库,实现中间件可以用指定的方式去下发 SQL。基本上是这样的,hint 里面是有一个路由的结果,比如我这里面 ID=1。通过拆分算法求模,我知道 ID=1 会下发给哪个库,但是真正的执行的 SQL 是另外一种 SQL,这里面这个 SQL 也不是很好,但是能表达功能。通...

微课程 | 第十课《ER 表实现方法 2》

2019-12-20
阅读 1 分钟
2.6k
如图,有这样的 6 张表 tableA-F。这些表我设置了拆分列、分布节点和拆分算法。把它们分为三组,可以看到表格最后一列的分组号为 1 的,它们的分布节点以及拆分算法完全一样时,这三张表其实可以互为 ER。因为拆分列在将来做 JOIN 的时候是要用作 ON 的条件。但只要规则分布相同,他们之间可以互为 ER。另外几张表,一个...

微课程 | 第九课《ER 表实现方法 1》

2019-12-16
阅读 2 分钟
2.7k
ER 表是一个什么样的概念,我们可以看一下上图的右边。sales 和 sales_detail 这两个表其实就有逻辑外键关系的两张表。有外键关系的表可以用外键来拆分,或者是依赖于外键节点。比如某个列 A 和外键列关系是 1: N,外键可以唯一决定它路由的归属。中间件可以通过某个列 A 拆分以后,在另一张表按照对应列进行拆分,因为...

微课程 | 第八课《Global 表简介》

2019-12-13
阅读 2 分钟
1.7k
我们有一个定义:对于数据量不大的字典表(比如超市商品)。对于零售系统来说,比如超市商品 SKU 可能有几十万规模的数据量,并且 SKU 不会出现大量增删改,也不会出现并发增删改。对于这样的数据特性来说,非常适合做 Global 全局表。

微课程 | 第七课《不同拆分规则的表》

2019-12-09
阅读 2 分钟
2.6k
现在我有四个节点,四个节点是按照求模拆分的,tb_mod 上有这样 5 条数据。这边 6 7 打个括号,意思是如果有 6 7 的话将会是这样一个数据分布。然后通过 jump hash 算法拆分后是这样的,1 2 3 分布在 dn2 上,4 6 分布在 dn1 上。这时我要做一个 tb_mod 和 jump_hash 的 JOIN,如果直接把 JOIN 下发是不对的。看图可以知...

微课程 | 第六课《复杂查询》

2019-12-06
阅读 2 分钟
2.7k
首先基本的 DML 我们已经介绍过了,在这里介绍下复杂查询。如图所示,所谓复杂查询大概是这样的一个定义。包括一些跨库分布的的数据查询、聚合函数、JOIN、UNION、子查询、复杂表达式和视图等等。dble 除了相关子查询是不支持的,其他都已经支持了。我们可以通过这张图来看是怎么做的。从上往下看,首先是一个客户端,然...

技术分享 | wrapper 和 dble 之间的那些事

2019-12-04
阅读 3 分钟
3.1k
在即将发布的 dble 2.19.09.0 版本中,我们将升级 dble 中 JSW 的版本,将 JSW 版本从 3.2.3 版本升级到 3.5.41 版本。升级的原因在于我们在使用过程中发现了几个比较严重的 bug,这几个 bug 会导致 dble 的守护进程异常退出和 hang 死。hang 死的案例可参考 issue:[链接]。看到这里的同学,有些同学可能对 JSW 可能还...

微课程 | 第五课《水平拆分》

2019-12-02
阅读 3 分钟
2.4k
dble 最核心的功能就是数据的水平拆分。首先说数据拆分,如果不太了解数据拆分是怎么回事,我这里先简单的介绍一下。本来我们一张表是完整的,但是这张表过大,超过一亿条数据。单表查询也好,增删改也好,都会遇到很大的问题。

微课程 | 第四课《目录结构演示》

2019-11-29
阅读 2 分钟
1.2k
[链接] 上一期我们介绍了 DBLE 的普通安装方式,这一期我们来了解一下安装好的目录结构。 [链接] DBLE 安装目录介绍 首先是一个算法的目录,存放自定义算法。然后是 bin 目录,存放启动脚本和初始化集群状态的脚本,然后还有小工具命令。conf 目录是最重要的,存放配置文件,我们后面详细说它。pid 是守护进程文件,如果...