リーダー選出の遅延

(The bot translated the original post https://lists.apache.org/thread/6qyrvxk1rcxtnrl6rj7wdnzb8ncrgwoj into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
みなさん、こんにちは。
リーダー選出の遅延(Leader Election Slowness)について、コミュニティからのフィードバックをお願いしたいです。
これは私のチームが管理している Solr 8 および 9 のクラウド環境(様々なサイズ)の両方で発生しています。
この問題を再現しようとして Overseer(オーバーシア)の深いところに入り込んでしまいましたが、本格的に掘り下げる前に少し外の空気を吸いたくて投稿しています :-)
状況の説明:
ここで言う「遅い」とは、リーダー選出に30秒以上(時には1分以上)かかることを意味します。
この遅延は、ZooKeeper 上のライブノードの更新のタイミングにギャップが見られることで判明します(すべてのホストで確認できます):
2025-04-04 22:23:29.150 INFO ZkStateReader [...] - Updated live nodes from ZooKeeper... (16) -> (15)
このログのあと、約40秒間にわたって一貫して起きているのは、indexFetcher
がインデックスの同期状態を確認するループだけのようです。
そしてようやく 40 秒後に次のようなログが出力されます:
2025-04-04 22:24:01.041 INFO ZkStateReader [...] - A cluster state change: [...] has occurred - updating...
2025-04-04 22:24:03.665 INFO ShardLeaderElectionContext [...] - I am the new leader: http://new-leader-url.com/solr/...
2025-04-04 22:24:03.672 INFO IndexFetcher [...] - Updated leaderUrl to http://new-leader-url.com/solr/...
疑問点:
私が特に困惑しているのは、最初の約40秒の空白期間です。
この例ではクラウド構成としては比較的小規模で、2つのコレクションと合計31シャードしかありません。
ZooKeeper のメトリクスやログにも怪しいものは見当たりませんでした。
同じような現象を経験された方がいれば、ぜひ詳細や調査結果を共有していただけないでしょうか?
現在までの調査内容:
再現を試みる中で、Overseerの挙動をデバッグログで追うことになりました。
その過程で Matt Biscocho さんから、Overseer を廃止し distributedClusterStateUpdates
と楽観的ロックを使う方向の取り組み(SOLR-14927)について教えていただきました。
これを試してみるのも面白そうですが、現時点ではこの問題を安定して再現できないため、その改善効果を正確に測る自信がありません。
また、我々のクラウドは通常 1~2コレクション/数十シャード程度なので、クラスタ状態更新の並列化による恩恵がどれほどあるのかも微妙なところです。
このスレを読んでいる方の中には、我々よりもはるかに大規模なクラウドで運用されている方も多いと思います。
ありがとうございます!
Luke
トピックへ返信するには、ログインが必要です。