8 Matching Annotations
  1. Apr 2025
  2. Mar 2025
    1. 但是为什么 AbstractFetcherThread 线程总要不断尝试去做截断呢?这是因为,分区的 Leader 可能会随时发生变化。每当有新 Leader 产生时,Follower 副本就必须主动执行截断操作,将自己的本地日志裁剪成与 Leader 一模一样的消息序列,甚至,Leader 副本本身也需要执行截断操作,将 LEO 调整到分区高水位处。

      当leader变更时,follower需要truncate自己的日志来保证与leader一致,而leader切换的时候,自身也需要truncate到HW来保持数据的一致性,但是这样会丢消息,当然如果没有到HW,那么需要所有节点同步的消息应该收不到回复