GBase 8a 数据搬移任务状态转移和优先级

用户数据依据 distribution 分布信息表进行存储分布。当集群扩容新节点后,新节点参与存储和计算,distribution 分布信息表必然需要重新建立。用户数据从旧的 distribution 分布信息表过渡到新的distribution 分布信息表的数据存取过程称为数据搬移。
数据搬移的操作命令是 rebalance,其是异步执行命令。
语法:
rebalance <instance/database 库名/table 表名> [to distribution_id]
注:
Rebalance 须在 coordinator 上执行。
Rebalance 不支持跨 VC 操作。

在 coordinator 上 使 用 gccli 执 行 rebalance 命 令 后 , rebalance 任 务 会 被 加 入 到
gclusterdb.rebalancing_status 集群表中。
gclusterdb.rebalancing_status 表中记录 5 种任务执行状态:


当表处于 STARTING 状态时,coordinator 后台线程开始执行表的 rebalance 操作,表状态转换成RUNNING。
 当表处于 RUNNING 状态时,coordinator 后台线程完成了表的 rebalance 操作,表状态转换成COMPLETED。
 当表处于 STARTING 和 RUNNING 状态时,对表执行 pause rebalance 操作,rebalance 暂停。表状态转换成 PAUSED。

如:pause rebalance table [database_name.]table_name
 当表处于 PAUSED 状态时,对表执行 continue rebalance 操作,rebalance 继续执行,表状态转换成RUNNING。如: continue rebalance table [database_name.]table_name
 当表处于 RUNNING 状态时,coordinator 后台线程执行表的 rebalance 操作失败,表状态转换成STARTING。
 当表处于 STARTING、RUNNING 和 PAUSED 状态时,对表执行 cancel rebalance 操作,表状态转换成CANCELED。搬移任务取消。
如:cancel rebalance table [database_name.]table_name
rebalance 任务执行状态可以从 gclusterdb.rebalancing_status 表中查询。
如下图:


coordinator 集 群 会 从 gclusterdb.rebalancing_status 中 选 取 优 先 级 最 高 的gcluster_rebalancing_concurrent_count 个表进行 rebalance 操作。数字越小优先级越高。
优先级(priority)设置方法:
gbase> update gclusterdb.rebalancing_status set priority=4 where index_name='test.t2';
调整 test 库 t2 表的 rebalance 优先级为 4。它的数字比 t1 和 t3 表都小,所有最优先搬移。
gcluster_rebalancing_concurrent_count 用于指定并发执行 rebalance 表的个数。
用法:
gbase> set global gcluster_rebalancing_concurrent_count = 2;
设置 rebalance 同时并发搬移 5 张表。
参数:
N :并发操作数。须指定有几张表做 rebalance 并发操作(缺省值为 5);
0 :无并发,即不执行 rebalance 操作。

结合上图,因为并发数设置为 2,那么优先级最高的 2 个表优先执行 rebalance 操作。即 test.t2 和
test.t1 表并发执行搬移操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值