[ISSUE #4845] Fix Controller design.md typo (#4846)

This commit is contained in:
mxsm
2022-08-20 09:20:58 +08:00
committed by GitHub
parent b7f0162ffa
commit 02595d9360
+11 -11
View File
@@ -74,7 +74,7 @@ Transfer 阶段:
- Slave ⽐较获取到的 Master EpochCahce <Startoffset,Endoffset>,从后往前依次和本地进行比对, 如果二者的 Epoch 与 StartOffset 相等, 则该 Epoch 有效,截断位点为两者中较⼩的 Endoffset,截断后修正⾃⼰的<Epoch , Startoffset> 信息,进⼊Transfer 阶 段;如果不相等,对比 Slave 前⼀个epoch,直到找到截断位点。
```
```java
slave:TreeMap<Epoch, Pair<startOffset,endOffset>> epochMap;
Iterator iterator = epochMap.entrySet().iterator();
truncateOffset = -1;
@@ -82,14 +82,14 @@ truncateOffset = -1;
//Epoch为从⼤到⼩排序
while (iterator.hasNext()) {
Map.Entry<Epoch, Pair<startOffset,endOffset>> curEntry = iterator.next();
   Pair<startOffset,endOffset> masterOffset=
   findMasterOffsetByEpoch(curEntry.getKey());
   
   if(masterOffset != null &&
    curEntry.getKey().getObejct1() == masterOffset.getObejct1()) {
       truncateOffset = Math.min(curEntry.getKey().getObejct2(), masterOffset.getObejct2());
       break;
  }
Pair<startOffset,endOffset> masterOffset=
findMasterOffsetByEpoch(curEntry.getKey());
if(masterOffset != null &&
curEntry.getKey().getObejct1() == masterOffset.getObejct1()) {
truncateOffset = Math.min(curEntry.getKey().getObejct2(), masterOffset.getObejct2());
break;
}
}
```
@@ -172,7 +172,7 @@ Slave 收到 Master 回送的包后, 就会在本地进行上文阐述的日志
### 基本流程
ELectMaster 主要是在某 Broker 副本组的 Master 下线或不可访问时,重新从 SyncStateSet 列表⾥⾯选出⼀个新的 Master,该事件由 Controller ⾃身发起。
ELectMaster 主要是在某 Broker 副本组的 Master 下线或不可访问时,重新从 SyncStateSet 列表⾥⾯选出⼀个新的 Master,该事件由 Controller ⾃身或者通过运维命令`electMaster` 发起Master选举。
无论 Controller 是独立部署, 还是嵌入在 Namesrv 中, 其都会监听每个 Broker 的连接通道, 如果某个 Broker channel inActive 了, 就会判断该 Broker 是否为 Master, 如果是, 则会触发选主的流程。
@@ -194,7 +194,7 @@ Shrink SyncStateSet ,指把 SyncStateSet 副本集合中那些与Master差距
- Master 端通过定时任务扫描每一个 HaConnection, 如果 (cur_time - connection.lastCaughtUpTimeMs) > haMaxTimeSlaveNotCatchUp,则该 Slave 是 Out-of-sync 的。
- 如果检测到 Slave out of sync , master 会立刻和 Controller 上报, 从而 Shrink SyncStateSet。
- 如果检测到 Slave out of sync , master 会立刻向 Controller 上报SyncStateSet, 从而 Shrink SyncStateSet。
#### Expand