我正在阅读有关八卦风格故障检测的内容。
在我正在阅读的笔记中,它说:a single heartbeat takes O(log(N)) time to propagate
但这句话没有解释
知道为什么会这样吗?
答案 0 :(得分:2)
因为在这种情况下最有效的传播方式是使用二叉树结构(或任何k-ary树)。第一个节点向其子节点发送消息,它们向子节点发送消息等。二叉树的高度为log n
,树中的每个级别代表传播消息的一个阶段,因此总时间等于O(log n)
。
答案 1 :(得分:1)
首先向k个节点发送消息。他们每个人都向k个节点发送消息并收集他们的回复。每一跳将接收到该消息的节点数乘以k。当k ^ t> = N时,所有节点都收到了消息。发生这种情况所需的时钟时间与跳跃次数t成正比。
k ^ t = N => log_k(N)= T
我们知道时钟时间与t成正比,因此必须与log_k(N)成正比。
我特别不熟悉八卦,但这个答案适用于大多数群集结构上的大多数广播消息。