You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2022/07/18 15:06:17 UTC

[GitHub] [rocketmq] RongtongJin commented on pull request #4484: [RIP-44] Support DLedger Controller

RongtongJin commented on PR #4484:
URL: https://github.com/apache/rocketmq/pull/4484#issuecomment-1187616255

   > 6.29 review意见:
   > 
   > 1. 以SyncStateSet不以IP作为依据,而是以brokerId(Controller给broker的唯一编号)作为依据,HA部分同步要改。
   > 2. 整理InSyncReplicas、minInSyncReplicas在Controller模式下含义,当SyncStateSet个数小于minInSyncReplicas时,副本写入将不再成功,返回PutMessageStatus.IN_SYNC_REPLICAS_NOT_ENOUGH
   > 3. 不再复用NameServer的心跳,都使用Controller独立的心跳、去掉controllerDeployedStandAlone参数,心跳包新增maxOffset、confirmOffset、last epoch等字段。这些会作为选举的依据
   > 4. 选举后SyncStateSet应该继承下来而不是直接变为新Master,一个场景是新被选出的主,该主马上又挂了,此时就没有master可以被选举(不过从当前实现来看,若改为继承,slave若没有马上连到master,会增加故障恢复的时间,并且master会马上更新新的SyncStateSet,而slave连上master首先需要获取haMasterAddress从namesrv注册结果中返回,需要一段时间(考虑在controller中维护haMasterAddress)),同时这种情况下注意confirmOffset回退问题(先进行分析)
   > 5. Controller 的格式带上rocketmq message header,以便于后面扩展
   > 6. 对于磁盘坏、心跳好的情况,需要再细分PutMessageStatus(能显示磁盘坏),如果磁盘坏了,同样需要选举切换。
   
   已完成第2、3点修复。第1点修复@hzh0425进行中


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org