网易首页 > 网易号 > 正文 申请入驻

为什么说 TiDB 在线扩容对业务几乎没有影响

0
分享至

本文讨论了分布式数据库在在线扩容方面的挑战, 详细解释了一般分布式数据库和 TiDB 在扩容机制上的不同。 一般分布式数据库在进行在线扩容时,需要重新平衡数据分布,可能会影响系统的可用性和 IO 消耗。 相比之下,TiDB 的存算分离架构使得扩容对业务影响较小。

作者:爱喝自来水的猫 来源公众号:数据源的技术后花园。

昨天和别人交流 PingCAP TiDB 时,这位同学对“TiDB 在线扩容对业务几乎没有影响” 这一点表示不太理解,惊讶 TiDB 到底是怎么做到的。 细聊下来,发现这位同学是一位主要负责集中式和早期分布式架构数据库的 DBA 人员,比较熟悉 Oracle、Greenplum。 于是我有点理解他的惊讶了,因为 Oracle 和 Greenplum 我也是有一点点经验,本文简单针对一般分布式数据库和 TiDB 在扩容机制上谈一点个人的理解。

一般分布式数据库在线扩容是怎么做的

集中式数据库因为其架构本身的限制,一般来说想要实现在线扩容是比较困难的,这里暂且不予讨论,我们主要了解一下一般分布式数据库的扩容是如何进行的。不管是 Greenplum 这种 MPP 数据库,还是其它的分库分表数据库,为了实现数据的均衡分布,通常需要在表上定义相关的分布键。通过分布键,再结合哈希算法,可以把数据哈希散列到不同的数据节点中,类似于hash ( key ) % N ( key 代表分布键, N 代表数据节点编号)。举个例子,假如一个分布式数据库有 3 个数据节点,表的分布键为 ID ( ID 是一个递增序列),那么基于哈希算法散列后数据的分布大致如下图所示:

现在我们需要扩容一个节点,从原来的 3 节点扩容到 4 节点。为了保证原来哈希散列结果的一致性数据需要重新平衡,平衡后的数据分布应该如下面图中所示。可以发现,这个时候大部分的数据基本都搬迁了一遍。先不说数据的迁移是否对业务造成阻塞,光是这现有的大面积数据均衡足以导致整个系统的 IO 消耗极高,严重影响整个系统的可用性。

Greenplum 在官方文档中还明确指出“正在被重新分布的表或者分区会被锁定并且不可读写。当其重新分布完成后,常规操作才会继续”。可以明确的说, Greenplum 早期版本里面根本就不 支持所谓的“在线”扩容。

时代在进步,数据库技术也在进步。为了尽可能实现在线扩容的能力, Greenplum 数据库包括其他的分库分表数据库开始引入一些新的算法来优化此事。一致性哈希算法开始被普遍应用,它与传统哈希算法最主要的不同是不再使用节点编号来进行散列,而是使用 2^32 这样一个固定值做取模运算。一致性哈希算法将表中的数据和节点编号映射到一个圆环上,当增加节点时影响的数据范围只是圆环上的一小段数据范围。比如下图中增加节点 4 ,影响的数据只有节点 1 到节点 4 之间的这部分数据。

一致性哈希算法解决了数据重分布时大量数据搬迁的问题,减少了数据搬迁时的网络 IO 和磁盘 IO 。不过要真正实现不影响业务,还需要改进数据重分布内部的机制,比如重分布时锁表等问题。

TiDB 的扩容是怎么做的以及为什么它几乎不影响业务?

TiDB 的扩容机制离不开 TiDB 整体的架构实现。作为一个存算分离的原生分布式架构, TiDB 集群主要由三大模块构成:用于集群元数据管理及集群调度的 PD 、用于接收外部请求并解析编译执行 SQL 的计算引擎 TiDB Server 以及用于数据存储以及多副本数据一致性保证的存储引擎 TiKV/TiFlash。

基于存算分离的架构,TiDB 可以单独进行计算层扩容和存储层扩容。计算层的扩容相对简单,因为 TiDB Server 本身是无状态的。TiDB Server 节点不持久化数据,每个节点也是完全对等的,当 TiDB Server 计算资源不够了,只需要增加 TiDB Server 节点,然后修改上层的负载均衡组件将客户端连接均衡分发到新的 TiDB Server 节点即可(目前大多数负载均衡组件都支持动态修改配置)。因此,计算节点的扩容完全不会影响现有的业务。

针对存储节点, TiKV 的扩容与一般分布式数据库的扩容机制是完全不同的,这主要因为 TiKV 是一种基于 Multi Raft 协议的分布式存储引擎,而不是像 Greenplum 或分库分表那种底层是多个 MySQL 或 PG 的单机数据库。

假如某集群要从 3 个 TiKV 节点扩容到 4 个 TiKV 节点,扩容步骤大致可以概括如下:

1.扩容 TiKV 节点。集群增加一个 TiKV 4 节点,此时 TiKV 4 上没有任何 Region。PD 节点识别到新的 TiKV 节点启动负载调度机制,计算哪些 Region 需要迁移到 TiKV 4。

2.调度算法确定迁移Region。PD 节点根据调度机制,确定将哪些 Region 副本迁移到 TiKV 4 上(假如开始 3 个节点上各有 6 个 Region ,平均到 4 个节点后每个节点的 Region 数为 18/4=4~5 个副本)。PD 对 TiKV1~3 上 Region 对应的 Leader 副本发起复制指令。

3.复制Region到新节点。在 TiKV 上创建要复制的 Region 的副本,通过 Raft 机制开始复制数据。此过程中应用读写访问不受影响,不过因复制过程产生的 IO 消耗可能会对性能产生一点影响,不过 TiDB 本身提供了流控,可以动态调整复制的速度。

4.删除多余Region。Region 复制完成且数据一致后,PD 将发起删除原有副本指令,保证每个 Region 的副本只有 3 个。

5.Leader 重新均衡。PD 根据调度机制,需要均衡 Leader 副本,将一部分 Region 的 Leader 切换到新增节点 TiKV 4 上,保证 Leader 的均衡。Leader 切换完成后,读写业务将自动路由到 TiKV 4 上实现业务负载均衡。

上述步骤简单理解下来就是说,TiKV 的扩容是一种先生成副本再迁移 Leader的一个过程,扩容对业务有影响的地方主要在于生成副本产生的 IO 消耗以及 Leader 切换的影响。对于前者,数据库有流控机制可以保证对业务几乎没有影响;对于后者,一方面 Leader 的切换本身时间非常短,另一方面当 TiDB 意识到 Region 迁移后也能够通过内部重试保证前端业务的正常执行。因此,存储节点的扩容也几乎不会影响现有的业务

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
陕西事业编招聘面向35岁以上人员!网友:硬件不满足该是谁的泪呢

陕西事业编招聘面向35岁以上人员!网友:硬件不满足该是谁的泪呢

火山诗话
2025-03-07 06:10:23
恩爱了24年,74岁张艺谋衰老“萎缩”,43岁陈婷正绚烂如花

恩爱了24年,74岁张艺谋衰老“萎缩”,43岁陈婷正绚烂如花

阿凫爱吐槽
2025-03-07 07:36:34
阿萨德出逃太惊险,2架战机锁定总统专机,中国手机绝境中救了命

阿萨德出逃太惊险,2架战机锁定总统专机,中国手机绝境中救了命

富强巨靠谱
2025-02-19 17:15:14
泪目!香港委员两会哽咽:哪吒2把中国五千年文明烧进好莱坞心脏

泪目!香港委员两会哽咽:哪吒2把中国五千年文明烧进好莱坞心脏

吾爱纪实
2025-03-06 09:58:32
张豆豆大卷发+机车狂飙!扩展个人商业版图,不做孙杨的保姆管家

张豆豆大卷发+机车狂飙!扩展个人商业版图,不做孙杨的保姆管家

杨华评论
2025-03-06 20:08:07
北京交管:3月7日机动车尾号限行1和6 高峰通行压力较为突出

北京交管:3月7日机动车尾号限行1和6 高峰通行压力较为突出

北青网-北京青年报
2025-03-06 18:52:11
英超前瞻|利物浦0-1南安普顿:又是二线阵容,打垫底队也输?

英超前瞻|利物浦0-1南安普顿:又是二线阵容,打垫底队也输?

体育世界
2025-03-07 01:14:14
日系两强同日上市新车:丰田受赞、本田遭嘲

日系两强同日上市新车:丰田受赞、本田遭嘲

沙雕小琳琳
2025-03-07 10:18:42
广厦官方:孙铭徽遭遇右跟骨骨折 休战4周

广厦官方:孙铭徽遭遇右跟骨骨折 休战4周

直播吧
2025-03-07 10:55:22
2999元, 苹果新机官宣:3月6号!正式开卖!

2999元, 苹果新机官宣:3月6号!正式开卖!

小兔子发现大事情
2025-03-06 10:01:34
0胜5负,狂输85分!CBA霸主原来是纸老虎,郭艾伦骗了你们所有人

0胜5负,狂输85分!CBA霸主原来是纸老虎,郭艾伦骗了你们所有人

多特体育说
2025-03-06 21:55:01
人心散了,再高端的武器也赢不了胜利

人心散了,再高端的武器也赢不了胜利

吴女士
2024-08-14 10:12:38
512GB,真敢造啊

512GB,真敢造啊

放毒
2025-03-06 15:11:06
随着利物浦1-0,欧冠8强浮现!英超有望独占3席,法甲4队近乎团灭

随着利物浦1-0,欧冠8强浮现!英超有望独占3席,法甲4队近乎团灭

球场没跑道
2025-03-06 09:12:18
太有面!小井现身北京,汪小菲高规格接待,两人同排并坐一起用餐

太有面!小井现身北京,汪小菲高规格接待,两人同排并坐一起用餐

夏聊娱乐
2025-03-06 16:12:07
恋情是真的?太阳队的杜兰特最近承认了自己对安吉尔·里斯的猜测

恋情是真的?太阳队的杜兰特最近承认了自己对安吉尔·里斯的猜测

爆喷体育
2025-03-05 00:40:07
董力承认膨胀迷失自己!一家六口蜗居100平的家,儿女首出镜可爱

董力承认膨胀迷失自己!一家六口蜗居100平的家,儿女首出镜可爱

振华观史
2025-03-06 13:48:56
黄磊女儿黄多多已经18岁了,出落得亭亭玉立,很有气质

黄磊女儿黄多多已经18岁了,出落得亭亭玉立,很有气质

视点历史
2024-11-19 23:06:22
世界大奖赛:瓦菲绝杀徐思,肖国栋孤军奋战,八强全部落位

世界大奖赛:瓦菲绝杀徐思,肖国栋孤军奋战,八强全部落位

撒丁岛体育
2025-03-07 01:28:36
恩佐时代要来了,一场2:1万人见证世界第一中场,皇马要掏钱砸人

恩佐时代要来了,一场2:1万人见证世界第一中场,皇马要掏钱砸人

小嵩
2025-03-07 09:51:06
2025-03-07 11:16:49
PingCAP
PingCAP
分布式数据库TiDB背后团队
542文章数 624关注度
往期回顾 全部

科技要闻

星舰第八飞:又夹住了助推器 但飞船被引爆

头条要闻

老人在养生门店一年多消费47万 家人在其去世后才发现

头条要闻

老人在养生门店一年多消费47万 家人在其去世后才发现

体育要闻

1次射正就绝杀!欧冠诞生史诗级系统局

娱乐要闻

曝具俊晔承担大S房贷,每月还百万

财经要闻

信息量巨大!五部门"掌门人"重磅发

汽车要闻

6.98万元起 埃安UT定价背后的决心与野心

态度原创

家居
数码
健康
旅游
教育

家居要闻

法式浪漫 时尚轻奢人文

数码要闻

配备M3芯片的苹果新款iPad Air性能基准测试结果已出

戴耳机超1小时=听力慢性自杀?

旅游要闻

武汉一景区樱花被冻成“冰糖葫芦”?

教育要闻

怎样帮助自己的孩子一步步戒断网瘾?

无障碍浏览 进入关怀版