トピックに多くの返信があり、ユーザーがブックマークしている場合に、トピックの読み込みが遅いか、まったく読み込まれない

Discourseフォーラムで長らく再発する問題があり、ついに原因を特定し、再現させることができました。

再現手順は以下の通りです:

  1. 数千件の返信があるトピックを用意する

  2. そのトピック内の投稿をブックマークする

  3. トピックを開く

すると、トピックの読み込みに非常に時間がかかるようになります。場合によってはタイムアウトし、代わりにNginxエラー(502 Bad Gateway)が表示されます。

当フォーラムでの概算読み込み時間は以下の通りです:

  • 約1,000件の返信があるトピックの場合、ブックマーク作成後に数秒の追加読み込み時間がかかります。目立ちますが、大きな問題ではありません。

  • 約4,000件の返信があるトピックの場合、読み込み時間は通常20〜30秒で、ページが正常に読み込まれずにタイムアウトすることがあります。

  • 9,000件以上の返信があるトピックの場合、ほとんどの場合タイムアウトします。読み込まれる場合でも、30秒以上かかることがあります。

なお、これらのトピックはブックマークがない場合は問題なく読み込まれます。この問題は、特定のトピックにブックマークを持っているユーザーにのみ発生し、ブックマークを削除するとすぐに通常通り読み込まれるようになります。

「いいね!」 5