region assign 流程补充说明

region assign的流程补充
Master端:


1.regionserver下线,zk中注册的rs节点下的server子路径session过期被删除,
  master触发RegionServerTracker.nodeDeleted监听事件,并调用ServerManager.expireServer
2.把下线的server添加到deadServers列表中,同时从onlineServers列表中移出此server,
3.触发ServerShutdownHandler.process方法,执行Hlog 的split操作。
4.通过AssignmentManager.assign执行region的分配操作,得到现在可用的所有servers
5.通过LoadBalancer.roundRobinAssignment把要分配的region平均到4中得到的可用servers中。
6.如果配置的balancer实现是FavoredNodeLoadBalancer,那么执行其getFavoredNodes,
  得到每个region可转移的servers列表.
7.检查是否达到批量分配region条件,如果是,执行GeneralBulkAssigner.bulkAssign,否则直接使用assign
8.设置每一个region的状态为offline,同时在zk的region-in-transition中注册此region名称的子路径,
  设置此路径的zk的event type 为M_ZK_REGION_OFFLINE,并生成一个RegionTransition添加到此节点的内容中
9.生成region的RegionPlan实例。并把RegionPlan添加到AssignmentManager.regionPlans列表中。
10.把region的assign状态更新为PENDING_OPEN状态
11.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值