Follow

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

言葉が足りなかった。あるノードが落ちてそこから情報が回ってこない・送れないのはしゃーなしとして、
それが復帰したときに他ノード複数の負荷がガッと上がるような話を見たので、もうちょっとうまくやれないかなぁと思ったのでした

Show thread

(もし自分の誤読じゃなければ)一つの不調・復帰がトリガーになって、複数のノードの状態が(やや)悪くなりえる話なので、
部分的な不健全性(って言うのかな?)が広く波及する構造なら、全体としてもあんまり良くないのかなーと。

Show thread

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

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

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

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

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

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

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

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

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

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

Sign in to participate in the conversation
Best Friends

友人と、くだらない話をしよう。Best Friends はあなたにとって最も居心地がいい場所でありたいと願って作られた Mastodon サーバーです。