Takeru Ohta

Results 133 comments of Takeru Ohta

Added the feature in #20.

I see. Thank you for your response. > After the process has crashed and restarted it should be ok typically. Was this the case here? Yes, our test case almost...

Thank you for reporting this issue. Unfortunately, I am unable to address it at this time, as the priority of `rusturn` development is very low. If you could create a...

詳細にありがとうございます。 実装当時の詳細はうろ覚えなので、適切なことを即答はできないのですが「期待される定義」に記載されている以下の定義に単純に書き換えてしまって大丈夫なのかどうかは、若干気になっています。 ``` (termL, indexL) ≽ (termR, indexR) iff termL > termR OR (termL = termR AND indexL >= indexR) ``` 理由としては、Raftのアルゴリズム的にtermはいろいろな理由で大きな値になることがあり、その場合にtermだけみて次のリーダを決めてしまうと、不整合が発生するのではないかと思いました。 (e.g., 既にリーダが確立している状態で、特定のノードがネットワーク的に孤立した場合、その孤立ノードは新選挙の開始とタイムアウトを繰り返して無限にtermがインクリメントされる。その後ネットワークが復帰した場合にtermの大小だけをいmると、その孤立ノードが勝ってしまう) ちょっと、issueの内容を完全に把握している訳ではないのと、Raftの論文もうろ覚えなので、時間がある時にでも再確認してみます 🙇 (ただ、そのための十分な時間がいつ取れるかは不明なので、あくまでも参考程度の意見と考えて貰えると助かります)

ありがとうございます。後でまたちゃんと確認させて貰います 🙇

この件、全く確認できていないですが、十月には少し時間ができる予定なので、そこで対応しようと思っています(既に一ヶ月放置してしまっていますが、一応情報共有)。

上記以外で気になる点は特にないですね。 (自分のモチベーションとしては「ちゃんと理解しておきたい」というのが一番大きいので、そもそも変更すること自体はそこまで気になってはいなかったりもします)

だいぶ遅くなってしまいましたが、改めてissue/実装/論文を確認させて貰いました。 結論から言えば「@yuezatoさんが提案されている内容に修正して問題なさそう(というかそちらの方が確かに論文通りになっていて良さそう)」ということになります。 最初にコメントを書いていた時に、↓の点を失念していたのが混乱の原因でした...。 ``` - logをLogPositionのなす列として見た時の、logに含まれている 最終エントリ のtermであり - Nodeが抱えているcurrentTermではない ``` 詳細な説明をありがとうございました 🙏

@illotum Sounds good! (fixed in https://github.com/rabbitmq/ra/pull/427/commits/924c024577f09963a60a1e9e75a332ee19841611)