Skip to content

特定条件下でノードを再起動すると、リーダの再選出が走ってしまうのを防止する #9

@sile

Description

@sile

条件:

  • ノードを再起動
  • 該当ノードの停止と再起動の間に、一度もリーダ選出が発生していない(= termが変わっていない)

対応策:

  • 起動直後に一定時間waitを入れれば、それで解決しそうではある
    • Raftの論文では、もともと起動直後はfollower状態で始まる、とあったと思うので、それに従えば良さそう?
  • raftlogでは、プログラム起動直後のリーダ選出時間を短くするために、ノードは起動後にcandidateで始まるようになっている(はず)
    • ただし、これはraftのタイムアウト時間を短くすることでも達成可能なので、今はこのようにする強いモチベーションはない(昔の諸々の実装が雑だった時には負荷のことも考えてタイムアウト時間を長めに設定していた)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions