graph扩容历史数据自动迁移

当graph集群扩容时,数据会自动迁移达到rebalance的目的。具体的操作步骤如下:

假设1:旧的graph集群为

graph-00 : 192.168.1.1:6070
graph-01 : 192.168.1.2:6070

假设2:在已有的graph集群基础上,需要再扩容两个实例,如下

graph-00 : 192.168.1.1:6070
graph-01 : 192.168.1.2:6070
graph-02 : 192.168.1.3:6070
graph-03 : 192.168.1.4:6070

1 修改新增加的graph的cfg.json如下:

"migrate": {
      "enabled": true,  //true 表示graph是否处于数据迁移状态
      "concurrency": 2,
      "replicas": 500,
      "cluster": { //未扩容前老的graph实例列表
         "graph-00" : "192.168.1.1:6070",
         "graph-01" : "192.168.1.2:6070"
      }
}

要点说明:

  1. 只有新增加的graph实例配置需要修改,原有的graph实例配置不能变动
  1. 修改配置文件的时候,首先要把migrate -> enabled这个开关修改为true;其次要保证migrate -> cluster这个列表为旧集群的graph列表。

2 重启所有的graph

cd $WORKSPACE/graph/ && bash control restart

3 修改所有transfer的cfg.json如下:

"graph": {
    "enabled": true,
     ...,
    "replicas": 500,
    "cluster": {
        "graph-00" : "192.168.1.1:6070",
        "graph-01" : "192.168.1.2:6070",
        "graph-02" : "192.168.1.3:6070",
        "graph-03" : "192.168.1.4:6070"
    }
},

要点说明:最主要的就是修改graph -> cluster列表为扩容后完整的graph实例列表

4 重启所有的transfer

cd $WORKSPACE/transfer/ && bash control restart

这时候,transfer就会将接收到的数据,发送给扩容后的graph实例;同时graph实例,会自动进行数据的rebalance,rebalance的过程持续时间长短,与待迁移的counter数量以及graph机器的负载、性能有关系。

5 修改query的配置,并重启所有的query进程

"graph": {
     ...,
    "replicas": 500,
    "cluster": {
        "graph-00" : "192.168.1.1:6070",
        "graph-01" : "192.168.1.2:6070",
        "graph-02" : "192.168.1.3:6070",
        "graph-03" : "192.168.1.4:6070"
    }
},

要点说明:最主要的就是修改graph -> cluster列表为扩容后完整的graph实例列表

6 如何确认数据rebalance已经完成?

目前只能通过观察graph内部的计数器,来判断整个数据迁移工作是否完成;观察方法如下:对所有新扩容的graph实例,访问其统计接口http://127.0.0.1:6071/counter/migrate 观察到所有的计数器都不再变化,那么就意味着迁移工作完成啦。

你可能感兴趣的:(graph扩容历史数据自动迁移)