フォロワーの数と、Mastodonの負荷の話でもしましょう。
--
私のアカウントには、6,735のフォロワーがいます。
さて、私が何かを投稿したり、ブーストした際に、どこにどのぐらいの負荷がかかると思いますか?
これを判断するためには、ローカルのフォロワー数と、リモートサーバの数を知る必要があります。計算してみましょう。
fedibird.comの中のフォロワーは、3,089だそうです。
リモートのフォロワーへは、サーバの数になります。フォロワーは745サーバに散らばっているようです。
投稿した際、ローカルのユーザーには、fedibird.comがそれぞれに配ります。
ホームでフォローしている人が3,068、リストに64、アカウント購読に191、合計で3,323個のDistributionWorkerが生成されてタイムラインに挿入する仕事をします。通知やハッシュタグ、キーワード購読などの処理も別途行われます。
リモートへは、745個のActivityPub::DeliveryWorkerを起動し、リモートサーバに送ります。そのサーバの中のフォロワーへ配送する処理は、相手に任せます。
丸投げする分、リモートの方が遙かに負荷が軽い。
ここが分散SNSのポイントになってくるところです。
もし、私が少人数の、それこそ一人のサーバだとしたら、リモートへの配送だけで済みます。
たとえば、人気のある人が自分のサーバに人を集めてしまったら、フォロワーだらけになりますから、それだけの負荷を自分で処理しなければなりません。
ところが、自分が発信するだけのサーバにして、フォロワーには分散SNS / Fediverseの空間にいてもらえば、サーバの数だけ配送すれば済みます。
10万人のフォロワーを自分のサーバに抱えると大変ですが、1,000のサーバに配送するだけなら楽々です。
この違いは承知しておきましょう。
ちなみに、私が投稿した際、リモート側では、mstdn.jpが1,320のフォロワーへの配送を受け持ってくれています。misskey.ioが196、mastodon-japan.netが159、pawoo.netが146、mastodon.socialが100です。
私はfedibird.comのサーバ管理者なので、たまたまfedibird.com(ローカル)のフォロワーが多いですが、みなさんの場合はもっと分散していると思います。
全体で薄く広く負荷を引き受けて、一つのノード(サーバ)が無理をしないように……なっているかな?
大きいサーバはちょっと不利ですね?
@noellabo @kmiura お返事ありがとうございます。最適な人数の計算とかできそうですね。研究者の仕事っぽいですが。