我是卡桑德拉新手。我了解种子节点的用途。但是种子节点有任何相关成本吗?如果是这样,它们是什么?另外,我想知道为什么不让每个节点都成为种子节点?
作为种子,基本上没有本地运行时成本,除了您可能会比非种子节点收到更多的八卦流量之外。然而,随着种子数量的增加,这种局部效应将逐渐变得不那么明显。
更有趣的是分布式效应。种子节点有利于八卦,这意味着如果只有几个种子节点,更新将集中在这几个种子中。非种子节点将尝试向种子发送八卦更新(从种子列表中随机选择),因此如果每个人都向相同的几个节点发送更新,那么它们必然拥有最新的集群元数据。同时,八卦还涉及接收元数据from种子,这意味着每个使用少数种子节点闲聊的人也将受益于最新的更新。最终结果是更新在整个集群中相对较快地传播,但代价是将一些八卦流量集中在较少的节点上。
将其与每个节点都是种子的情况进行比较。当某些节点进行闲聊时,它本质上是与集群中的另一个随机节点进行对话,而该节点不太可能与集群的其他节点进行闲聊。因此,我们的第一个节点刚刚发送到“种子”的更新不会传播得特别快。此外,由于种子没有收到所有八卦更新的较大比例,因此它能够发送回我们的节点的信息也不是特别最新(事实上,两个节点不知道的概率大致相同)关于集群中一些断开连接的更新)。因此,我们获得了完全的去中心化,但具有完全随机的更新传播。
实际上,如果你有大量的种子,你可能会受到抖动、重影和其他与旧拓扑信息相关的奇怪行为的影响,这些行为的持续时间超过了应有的时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)