Mastodon全く分かってないのだけど、一つのインスタンスが不調だと他にも迷惑かける感じらしい?のかな。
分散システム的にもうちょっとどうにかならないのかなとも思う。
@tadd 自インスタンスが不調でリモートからのトゥートなどの配送を受け取れないとリモートの再試行キューに積まれちゃうんですよねー。Exponentialにバックオフして何度か再試行して諦めて、各インスタンスのタイムラインやら状態やらが矛盾をかかえながらも全体としてそこそこ動いてるのは分散システム的にすごいなあと思ってますw
@zundan なるほどなるほど。その部分だとわりと納得です、わりとうまくやってそう。
自分が見たのは「過負荷ですみません」みたいなアナウンスで、どうにかならんのかなーと思ったのでした。
@tadd なるほどなるほど。元のアナウンスを僕は見てないっぽいので憶測になりますが、リモートへのトゥートの配送が滞ってキューにたまった状態でインスタンスが復旧した場合には、Sidekiqのスレッド数がボトルネックになりつつリモートへのリクエストのバーストが起きます。が、Sidekiqのスレッド数は例えば大規模インスタンスのアクティブユーザー数と比べてそれほど多くはないだろうし、小規模インスタンスでもトゥートの受け取りは自インスタンス側の速度に制限されつつ進むので、それほどひどい状態にはならなさそうです。
@zundan なるほどー。最後の「制限されつつ進む」がいい感じに行ってるなら問題なさそうに思いました。情報あざます!