亿嘉故障转移时间
Yugabyte failover time
有人能回答吗?
如果一个节点出现故障,故障转移时间是多少?我确实看到它需要 2 到 3 秒,但我们是否可以控制让它比这更快?如果是多少。通常,我们不能在应用程序队列中接受这个命中,因为它太敏感了。
在 YugabyteDB 中,表被共享到 tablets 中,并且 tablets 使用 Raft(一种分布式共识协议)在节点之间进行复制。 Raft 还用于为每个平板电脑选择平板电脑的一个同行作为领导者。
在典型情况下,一个节点会有很多个 tablets——一些是 follower 角色,一些是 leader 角色。当一个节点发生故障时,该节点作为领导者的 tablets 可能会有少量不可用,直到为这些 tablets 选出新的领导者。 (注:YugabyteDB 是 CP 数据库)。当 tablet 的追随者在一定数量的心跳中未收到其领导者的消息时,将触发此领导者(重新)选举。控制它并因此确定故障转移时间的旋钮是以下 gflags:
raft_heartbeat_interval_ms
(默认 500 毫秒)
leader_failure_max_missed_heartbeat_periods
(6)
换句话说,默认情况下,如果follower在6 * ~500 ms(默认心跳间隔)后,即大约3秒后没有听到leader的6次心跳,就会选举出新的leader .
可以覆盖上述设置以减少故障转移时间。但是,必须注意不要让它过于激进,因为这可能导致领导者不必要地 ping/pong 即使是小的网络问题。
有人能回答吗? 如果一个节点出现故障,故障转移时间是多少?我确实看到它需要 2 到 3 秒,但我们是否可以控制让它比这更快?如果是多少。通常,我们不能在应用程序队列中接受这个命中,因为它太敏感了。
在 YugabyteDB 中,表被共享到 tablets 中,并且 tablets 使用 Raft(一种分布式共识协议)在节点之间进行复制。 Raft 还用于为每个平板电脑选择平板电脑的一个同行作为领导者。
在典型情况下,一个节点会有很多个 tablets——一些是 follower 角色,一些是 leader 角色。当一个节点发生故障时,该节点作为领导者的 tablets 可能会有少量不可用,直到为这些 tablets 选出新的领导者。 (注:YugabyteDB 是 CP 数据库)。当 tablet 的追随者在一定数量的心跳中未收到其领导者的消息时,将触发此领导者(重新)选举。控制它并因此确定故障转移时间的旋钮是以下 gflags:
raft_heartbeat_interval_ms
(默认 500 毫秒)
leader_failure_max_missed_heartbeat_periods
(6)
换句话说,默认情况下,如果follower在6 * ~500 ms(默认心跳间隔)后,即大约3秒后没有听到leader的6次心跳,就会选举出新的leader .
可以覆盖上述设置以减少故障转移时间。但是,必须注意不要让它过于激进,因为这可能导致领导者不必要地 ping/pong 即使是小的网络问题。