Mastodon全く分かってないのだけど、一つのインスタンスが不調だと他にも迷惑かける感じらしい?のかな。
分散システム的にもうちょっとどうにかならないのかなとも思う。

Follow

@tadd 自インスタンスが不調でリモートからのトゥートなどの配送を受け取れないとリモートの再試行キューに積まれちゃうんですよねー。Exponentialにバックオフして何度か再試行して諦めて、各インスタンスのタイムラインやら状態やらが矛盾をかかえながらも全体としてそこそこ動いてるのは分散システム的にすごいなあと思ってますw

· · Web · 1 · 0 · 1

@zundan なるほどなるほど。その部分だとわりと納得です、わりとうまくやってそう。

自分が見たのは「過負荷ですみません」みたいなアナウンスで、どうにかならんのかなーと思ったのでした。

@tadd @zundan 過負荷ですみません!(私かな)

大きなノードが存在し、そこが不具合を起こして一度に大量の配送を行うと、小さなノードでは、それを処理するのが大変というのはあります。

配送しないで捨てちゃうことはできるんですが、通常は望まれないため(受け取りたいから)、ごめん頑張って、って感じになりますw

@noellabo @zundan いえいえ😅管理者さんが悪いとかなんとかでは(もちろん)なくて、システムの仕組みとかプロトコルへの興味でした。(自分はぜんぜん専門外です)

なるほどなるほど。ノードの大小の話なら、たとえばスループットのネゴシエーションができれば、ある程度ましなったりしそうな気もしました。

@tadd なるほどなるほど。元のアナウンスを僕は見てないっぽいので憶測になりますが、リモートへのトゥートの配送が滞ってキューにたまった状態でインスタンスが復旧した場合には、Sidekiqのスレッド数がボトルネックになりつつリモートへのリクエストのバーストが起きます。が、Sidekiqのスレッド数は例えば大規模インスタンスのアクティブユーザー数と比べてそれほど多くはないだろうし、小規模インスタンスでもトゥートの受け取りは自インスタンス側の速度に制限されつつ進むので、それほどひどい状態にはならなさそうです。

@zundan なるほどー。最後の「制限されつつ進む」がいい感じに行ってるなら問題なさそうに思いました。情報あざます!

Sign in to participate in the conversation
zundon

Zundon is a single user instance as home of @zundan as well as a test bed for changes of the code.