时间:2021-07-15 | 标签: | 作者:Q8 | 来源:腾讯云数据库 TencentDB网络
小提示:您能找到这篇{腾讯云:TBase数据节点在线扩容原理解析}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的腾讯云:TBase数据节点在线扩容原理解析内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">对于Share-Nothing架构的分布式数据库来说,如何将数据均匀的分布到各个节点、在线扩容,以获取更大的存储容量和更从危机公关说海底捞事件高的并药品海报宣传发访问量,成为各大分布式数据库系统的一大挑战,今天我将对腾讯云数据库TBase的数据节点在线扩容方案做一个简单的分享。 < ">为了迎接业务的快速增长,系统不可避免的需要进行扩容,传统的分布式数据库所采用hash(row)%nofdn,也就是说先对分布列计算hash值,然后使用这个值对节点个数取模来决定row存储在哪个节点。这里有一个致命的问题,扩容后节点数会变多,数据分布的计算逻辑会导致已经存在的数据无法正常访问。为解决这个问题,传统的分布式数据库必须把业务停掉,把所有数据导出,扩容后重新导入,在数据量较多时,这个过程可能会持续几天,这对于7*24小时的交易系统来说显然是不能接受的。为了解决这个问题,TBase引入了一种新的分表方案:sharded table。 < ">TBase的数据分布采用如下的方式: < ">1.引入一个中间层shard map,shard map中存储每一项shardid【通过hash(key)计算,key表示分布式键值】和DN的映射关系。 < ">2.分布式表中的每条记录通过hash(key)%#shardmap来决定记录存储到哪个数据节点。 < ">3.每个数据节点上存储分配到本节点的shardid信息,进而进行可见性判断。 < ">如下图所示,当hash(key)=1时,此行数据会存放在DN001数据节点,当hash(key)=2时,此行数据存储在DN002数据节点上,以此类推。 < ">这样做有什么好处呢?比如我们向default_group中新增加节点时,我们只需要把一些shardmap中的id映射到新加的节点,并把对应的数据迁移过去就可以了。 < ">如下图所示,向default_group中新增数据节点DN003,那么只需要把DN001中的shardid=1和DN002中的shardid=4的数据迁移到DN003中,就可以实现数据的重新分布,并达到节点间数据平衡。 < ">TBase的在线扩容过程: < ">1.选择要迁移到新添加数据节点的shardid。 < ">2.通过shardid找到要迁移的数据,采取存量+增量的方式把数据迁移到新的数据节点。 < ">3.当新节点中的数据和数据源的数据达到一致时,切换协调节点(CN)中的shardmap信息,把shardid=3,shardid=4映射到DN003中(shardmap切换时数据库集群处于只读状态,该操作会在秒级完成)。 < ">4.数据清理,释放空间。如上图所示,清理DN001中shardid=3和DN002中shar危机公关的相关研究did=4的数据。 |
上一篇:Payoneer:如何使用账户“两步验证“功能
下一篇:Payoneer:如何通过店商店经理店铺管家连接我的亚
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“腾讯云:TBase数据节点在线扩容原理解析”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通腾讯云:TBase数据节点在线扩容原理解析的相关事宜。
关键词:腾讯云:TBase数据节点在线