【问题标题】:Do the log index and log term variables in a Raft cluster grow without bounds?Raft 集群中的 log index 和 log term 变量是否会无限增长?
【发布时间】:2014-10-14 04:55:35
【问题描述】:

在 Raft 集群中,每个日志条目可以被认为有一个日志索引(按照日志的顺序,该条目出现的位置)和一个日志术语(条目发生在哪个“术语”;每次选举都会增加术语)。

例如,

这里,方块代表日志条目。方块中的数字代表日志中每个条目的期限。正方形的位置(以及最顶部的数字)代表日志中每个条目的索引。

Raft 日志中的日志索引日志项是否无限增长

如果不是,你如何“重置”这些变量?

如果是,实现(例如 etcd 或 ZooKeeper)是否支持这些无边界增长,或者它们是否使用固定大小的整数类型并假设您永远不会溢出这些变量?

【问题讨论】:

  • 顺便说一句,ZooKeeper 使用的是 ZAB 协议;但问题仍然适用。

标签: distributed biginteger integer-overflow raft


【解决方案1】:

它们确实会无限制地成长。 long 类型足以长时间覆盖日志和术语。大概几十万年,取决于你的吞吐量。

这是我在我的系统中使用的;我想在有人不得不处理它的时候我已经死了或退休了。

【讨论】:

  • 谢谢!我应该对此进行数学计算:给定一个 64 位整数,每秒十亿个日志条目或选举(这在网络上完全不可行),它将持续超过半个千年。 (如果你增加到 128 位 int,这更难但仍然是固定的,看起来你可以获得 quintillion (10 ** 18) ops / s 的吞吐量,并且持续时间比宇宙存在的时间长很多倍.)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多