数据库

首页 » 常识 » 预防 » 图数据库设计实践存储服务的负载均衡和
TUhjnbcbe - 2021/3/14 1:27:00
甲氧沙林溶液可以治疗白癜风 https://m-mip.39.net/baidianfeng/mipso_4322201.html

摘要

在文章《Nbula架构剖析系列(一)图数据库的存储设计》中,我们提过分布式图存储的管理由MtaSrvic来统一调度,它记录了所有partition的分布情况,以及当前机器的状态。当DBA增减机器时,只需要通过consol输入相应的指令,MtaSrvic便能够生成整个Balanc计划并执行。而之所以没有采用完全自动Balanc的方式,主要是为了减少数据搬迁对于线上服务的影响,Balanc的时机由用户自己控制。

在本文中我们将着重讲解在存储层如何实现数据和服务的负载平衡。

简单回顾一下,NbulaGraph的服务可分为graph,storag,mta。本文主要描述对于存储层(storag)的数据和服务的balanc。这些都是通过Balanc命令来实现的:Balanc命令有两种,一种需要迁移数据,命令为BALANCEDATA;另一种不需要迁移数据,只改变partition的raft-ladr分布(负载均衡),命令为BALANCELEADER。

1

本文目录

?Balanc机制浅析

?集群数据迁移?Stp1:准备工作?Stp1.1查看现有集群状态?Stp1.2创建图空间?Stp2加入新实例?Stp3迁移数据?Stp4假如要中途停止balancdata?Stp5查看数据迁移结果?Stp6Balancladr?批量缩容?示例数据迁移

2

Balanc机制浅析

在图数据库NbulaGraph中,Balanc主要用来balancladr和partition,只涉及ladr和partition在机器之间转移,不会增加或者减少ladr和partition的数量。

上线新机器并启动相应的Nbula服务后,storag会自动向mta注册。Mta会计算出一个新的partition分布,然后通过rmovpartition和addpartition逐步将数据从老机器搬迁到新的机器上。这个过程所对应的命令是BALANCEDATA,通常数据搬迁是个比较漫长的过程。但BALANCEDATA仅改变了数据和副本在机器之间的均衡分布,ladr(和对应的负载)是不会改变的,因此还需要通过命令BALANCELEADER来实现负载的均衡。这个过程也是通过mta实现的。

3

集群数据迁移

以下举例说明BALANCEDATA的使用方式。本例将从3个实例(进程)扩展到8个实例(进程):

Stp1:准备工作部署一个3副本的集群,1个graphd,1个mtad,3个storagd(具体部署方式请参考集群部署文:
1
查看完整版本: 图数据库设计实践存储服务的负载均衡和