Mastodonなど、大量の投稿が飛び交っているシステムでは、まず処理をキューに入れます。

キューというのは順番待ちをする列で、ひとまず最後尾に並んでもらって、順番に処理をすすめることで、一度に大量の処理が来てもサーバがパンクしないようにし、かつ全ての処理を漏らさずにこなすことができるようにする工夫です。

Mastodonでは、リモートから投稿を受け取ると、まずそれを処理するジョブをキューに入れます。

このジョブは、まず投稿の元になる情報を処理してデータベースに保存し、次にみんなのホームやリストに投稿を追加する処理を行います。

ホームやリストへの追加は、それぞれ別々のジョブとしてキューに入れ、順番に処理します。

たとえばUN_NERVの投稿を受け取ったサーバは、投稿に含まれる添付画像をUN_NERVのメディアサーバに取りに行って保存し、投稿の情報が揃ったらデータベースに保存します。

次に投稿をローカルや連合のストリーミングに流し、UN_NERVをフォローしている人のために必要な数だけタイムライン挿入ジョブを生成してキューに入れます。

タイムライン挿入ジョブは、順番に処理されるので少し待つことになりますが、この処理が終わったら投稿がタイムラインに挿入されます。

フォロー

さて、長くなりましたが、このあとの部分だけわかればOKです。

ローカルや連合は、最初のジョブで処理するので、すぐに投稿が流れてきますが、

ホームやリストは、順番待ちがもう一度発生するので、少し遅れて流れてきます。

特にサーバが混雑しているときは、この時間差が非常に大きくなります。

このため、UN_NERVの投稿をすばやく確認したい場合は、実は連合をみるのがもっとも速いということになります。

Fedibirdであれば、unnerv.jpドメインタイムラインを見るのが速いです。

ドメイン購読は、ホームやリストへの挿入待ちになるので、少し遅れて処理されることになります。

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

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