フォローは投稿を取得するから重めだけど、購読はハッシュタグTLと同じで連合TLから公開投稿を拾ってくるだけだからサーバに負担がかかりにくいイコール遅延起こりにくいんでしたっけ

@makihara えとね、ざっくり3ステップあるわけ。

最初にWebサーバが外部からの投稿データを受け取って、

1. ActivityPub::ProcessingWorker
2. DistributionWorker
3. FeedInsertWorker

という順序でワーカーが起動。

(1)は投稿データを解析して、投稿データとしてデータベースに記録+通知+(2)の起動

(2)はそれを全員共通のタイムラインに配送+(3)の起動

(3)はひとりひとりのタイムラインに配送

で、処理が詰まっている(順番待ちになっている)と、ひとりひとりのタイムラインに表示されるまでに3回待たないといけないのね。だから2倍も3倍も遅延するっていう。

購読とフォローはどちらも(3)で処理するから同じだよ。

ハッシュタグタイムラインは(2)で処理される。

内部の投稿は(1)の代わりに投稿APIの処理が走って、あと(2)以降は同じ。

@makihara フォローと購読で、購読の方が軽い場合というのは、

1. 購読は(主に)公開投稿だけを処理するので、処理対象が少ない(なので公開投稿しかしない相手なら同等)

2. フォローされている側としては購読者を認識していないので、送り先リストの件数が減る。減るけど、一つのサーバに一つしか送らないので、実はさほどの差ではない

ってぐらいかなあぁ。

@noellabo 購読とフォローで思ったよりは差はないんですねえ どちらかというと公開投稿を拾うフィルターとしての運用に向いてると

フォロー

@makihara リレーでしか受け取ってないアカウント(所属鯖から誰もフォローしてない)の場合、フォローされる側からすると軽くなるかな。

ま、負荷のことは考慮に入れなくていいと思います。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。