小さいちんぽならすぐ見つけられるのに
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
水ダウで、小籔の「危っびい」(あっびい)って発言に対して、テロップになってなかったけど、せいやの「聞いたことない活用やな」ってツッコミ(ガヤ)、地味にせいやの教養を感じさせて好き。
http://www.kunishiro.sakura.ne.jp/column/30/c33.shtml
「~したことがある」を「~したときがある」という表現をする人がいるらしいけど、それと関係あるかも。
「ときがある」をどの程度非文と感じるかによって、文の解釈が変わりそう。
このアカウントは、notestockで公開設定になっていません。
https://www.nicovideo.jp/watch/sm36756326
こういうの見ると、ニコ動のMADはFlash時代の香りというか系譜を受け継いでいるんだろうな。
YouTubeは綺麗すぎる。
ゆたぼん、炎上商法で食ってきた感じで、常に叩かれ続けてきて、それでもめげずにここまでやってきたし、最近は本人の自我がいい意味で評価されてきて、「父親が変でやばい」という風向きに変わってきたし、潮目が変わってきた感じはする。
一方、YouTubeもYouTubeで始めてるんだな。
https://www.youtube.com/channel/UCy7CLsD5z0l3Q8OzsxZRwOQ
そんなに伸びてなくて企画も弱めだけど、編集はかなりキビキビしていて、適度に内輪感もあって楽しい感じ。
小林幸子さん、今でもたまーにニコニコ動画に投稿していてすげえなってなった。
15年ほど前に若干干されてた感じになって、その間ニコ動に活路を見出していた感じになってたけど、当時の義理や思いを捨ててないの、まぁじですげえなってなった。
さて、ある程度の大きさのサーバになったら、これらのプロセスを複数用意して、よりたくさんの処理を捌けるように構成する必要があります。
nginxは、pumaが複数あるときには、処理を分散して引き渡す役割を果たします。応答してこないpumaがあったら他に割り振ることで、全体が一度にダウンしないようにする安全を担保する役割も果たしています。
sidekiqは、元々小さなジョブに分割された処理を実行するエンジンなので、たくさんあれば、それだけ同時にたくさんの処理ができます。
ジョブは種類でわけられているので、種類別のsidekiqを立てて、役割を分割することができます。
一番大事なローカルユーザーに応答する処理と、リモートサーバに配送する処理、リモートサーバから受けたリクエストに対応する処理など、別々にわけることで、負荷が高くなったときに、どの処理を優先し、どの処理に処理能力を配分するか、調整することもできます。
nodeは、redisの発行と購読の仕組みのおかげで、プロセスをたくさん起動しても、分散して対応することができます。
redisは、役割に応じて3つまで分割できます。最近は、redisの冗長化機能も使えるようになったようです。
ずっと内容を保持しておくデータは、PostgreSQLによるデータベースに保持されています。
pumaやsidekiqからの読み書き、nodeからの読み出しを一手に引き受け、矛盾のない状態を維持しています。
redisは、みんなのホームやリストタイムラインを保持したり、pumaやsidekiqの一時的なデータをキャッシュして高速化に貢献したり、発行と購読の仕組みをサポートして発行側と購読側を橋渡しする役割を担っています。
全体の役割分担は、だいたいこんな感じです。
このほか、オプションとして、全文検索の処理を行うElasticsearchを実行する場合もあります。
Elasticsearchがあると、そのサーバでは全文検索ができるようになるのですが、Mastodon本体と同じかそれ以上にヘビーなプロセスなので、余力のあるサーバにしか設置されていません。
Mastodonの構成の話。
ちいさなサーバは、VPSを一つ借りて、必要なプロセスを一つずつ起動して実行しています。
nginx、puma、sidekiq、node、postgresql、redisってとこかな。
nginxが外からのAPIアクセスや連合のリクエストを受け付けて、背後で実行しているMastodonのアプリケーションサーバであるpuma(mastodon-web)に処理を依頼します。
pumaは受け付けた内容を、その場で応答するものと、バックグラウンド処理にまわすものにわけます。
バックグラウンド処理は、小さなジョブに分割し、種類毎に順番待ちの列に突っ込んで、sidekiqプロセス(mastodon-sidekiq)が処理を行います。
pumaやsidekiqは、ユーザーにリアルタイムに知らせるべき内容をredisにpublish(発行)しておきます。
それをnode(mastodon-streaming)のプロセスが、現在subscription(購読)しているユーザーに対し、サーバ側からクライアント側に次々と流していきます。タイムラインがリアルタイム更新されていく仕組みです。