無限の、そして無料のサーバーを!

サービスを構築することを考え始めると
どこかでスケーラビリティの壁にあたる。

だったら、無限のサーバ、かつ無料のサーバがあればいい。
(くそう、このアイデアは友達にぜんぜん評判悪いんだけど)

でもそんなリソースはどこにあるんだ?
Googleみたいに株主から金をもらうのか?
そんな面倒なことはやってられないし、
そんな能力はない。

というか、サーバリソースならば
目の前にあるではないか。
このPCを使えばいい。

だが、電気代がかかるので、このPCを一日中動かしっぱなしにはできない。
アクセスが増えて負荷が増えたら耐え切れない。自分だって重い処理をすることもあるのだ。

だったら

winnyとかがやっているように、
(なんだっけ?白血病の解析モジュールがやっていたように)
みんなのサーバリソースを使えばいいだけだ。

このモデルの都合のいいことには、最大数のマシンが生きている時間は
サーバリソースは最大になる。
時間によるスケールの遷移を考えなくていい。
マクロな視点で見たときに負荷は一定。


なので

サーバ共有アプリケーションを作ろうと思う。
そいつを動かしている人が多ければ多いほど高性能になる。
みんながサーバ資源を持ち寄ればいい。


(ただ自分が最後まで作りきれる精神的な自信がない)
これを読んだ誰でもいいから作ってみてほしい。

もしもサーバ共有アプリケーションがあったら、
一切スケーラビリティを気にする必要はない。
サーバが停止することは原理的にほぼなくなる。

どんなに負荷の高いアプリケーションを作ってもだいたいなんとかなる。
ただし瞬時の応答性の高さを要求するものや、
データのささいな転送ミスを嫌うアプリケーションは動かしにくいかもしれない。

つまり、一夜にして100万人に使われるサービスを作ってしまっても問題はない。
CinemaScapeみたいな「サーバリソースが問題で拡張できない」
みたいなサイトは金輪際なくなる。

すべてはピアツーピアで処理される。
でも個々のPCがどんな役割を果たすかについては、上位でコントロールするサーバが必要なのかな?
個々の判断で正しく動作することは無理かなあ。

群体生態学みたいな話になってきた。
サーバ負荷分担を「全体計画なしに」個々のPCに正しく行わせることは可能だろうか?

んー、この話はどこかで読んだような。なんだっけ?