问题一:应用层收到Ready结构体后,需要执行哪些操作?
应用层收到Ready结构体后,需要执行哪些操作?
参考回答:
应用层收到Ready结构体后,需要将其中的数据写入WAL持久化存储,然后更新这块数据到已持久化数据缓冲区,并通过Advance接口通知Raft库这些数据已经持久化。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640695
问题二:Raft库中的Progress结构体是用来做什么的?
Raft库中的Progress结构体是用来做什么的?
参考回答:
1.维护follower节点的match、next索引,(0, Next)的日志已经发送给节点了,(0,Match]是节点的已经接收到的日志。
2.维护着follower节点当前的状态3中状态,不同的状态,其会采取不同的行为。
3.流量控制Inflights,避免follower节点超载
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640696
问题三:Progress结构体的State字段有几种状态,分别代表什么?
Progress结构体的State字段有几种状态,分别代表什么?
参考回答:
Progress结构体的State字段有三种状态,分别是:
ProgressStateProbe:探测状态,用于试探follower的日志丢失位置。
ProgressStateReplicate:副本状态,表示正常接收副本数据的状态。
ProgressStateSnapshot:快照状态,表示正在向follower发送快照数据。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640697
问题四:在Progress的Probe状态下,leader会如何操作?
在Progress的Probe状态下,leader会如何操作?
参考回答:
在Probe状态下,leader会试图继续往前追溯follower的日志从哪里开始丢失的。leader每次最多append一条日志,如果收到的回应中带有RejectHint信息,则回退Next索引以便下次重试。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640698
问题五:ProgressTracker在etcd-raft中的作用是什么?
ProgressTracker在etcd-raft中的作用是什么?
参考回答:
ProgressTracker是Progress结构体的管理器,用于管理集群中所有follower节点的Progress信息。它简化了对follower节点进度的跟踪和处理逻辑。
关于本问题的更多回答可点击原文查看: