トランザクションがないのに金になるシステム

ライブドアの技術の話へのYamatoさんのコメント

我々はライブドアのポータル以上のシステムをいくつも見ることが出来ます。電話の交換機、気象予報システム、大企業のERPシステム、コンビニのPOS等、ライブドアが素人の集団では無い事に間違いはないでしょうが取り立てて技術が素晴らしいというレベルでもないと思います。
(中略)
そう、システムの負荷限界を超えれば落ちるのは常識それはライブドアのサイトも同じ
ただ、ライブドアのサイトはその負荷限界の設定値がその規模に対して高かったとそれだけにすぎません。

otsuneさんのコメント

「テレビでガンガン放映されているのに、あの手のポータルをアクセス不能にしないこと」ってのがどれだけ困難で、金だけではない技術が必要だ。ってのは、大規模Apacheサイト運営についてを見聞きした技術者には自明の話なのだけど。それがこのコメント欄に代表されるような「たんにコストをかけすぎてサーバー台数が多いだけじゃないの?」というピントはずれな印象をもたれてしまうってのがポイントなんだなぁと思いました。

ライブドアの話としては、otsuneさんに同意しますが、Yamatoさんが見落しているのは、「Webの世界では『負荷限界』の設定ができない」ということだと思います。表向きはあったとしても、いざ何か起きた場合に「要件を超えたので知りません」とは言えないことが本音であるという世界ですよね。

つまり、端末の数が固定であれば、「あり得る最大の負荷」を要件に含めることができます。Yamatoさんが例にあげているシステムは、どれもその限界を設定した上で、信頼性や確実性(トランザクション処理)の点で非常に厳しい要件を求められるシステムです。これらを、「要件に負荷限界を設定されているWebシステム」と比較するならば、従来の業務システムの方がずっと高度な技術が必要であるということになります。

特に、Webの人が見落しがちなのは、業務システムにおいては確実なトランザクション処理が必要であるということです。データベースを更新するのに、どういうトラブルが起きても、整合性を保たなくてはいけないという要件が入ると、単純なIOも数倍になるし、ロックが集中することでレスポンスに問題が出るパターンもいろいろ発生してきます。Webのサービスでは、特殊なケースにまでそれを求められるケースはありません。

たとえば、ブログのエントリーがしょっちゅう紛失したらどんなユーザも怒りますけど、「DISKの突発的なハードエラーが三件連続して起きた時に、消失するエントリーが数件発生する可能性がある」なんてことなら、パフォーマンスと引き換えで充分認められる問題です。しかし、銀行の勘定処理では、大地震で東京が壊滅しても、たった一つの例外もなく送金の処理が、済なのかそうでないのか確定しなくてはなりません。送金元で1000円引き落とされているのに、送金先にはその1000円が入ってないってことは、許されないわけです。地理的に分散している複数のサーバに、それをリアルタイムで例外なく記録するというのは、とてつもなく高度な処理です。

だから、「事前の負荷限界」がある世界とそうでない世界には、それぞれ違う種類の高度な技術があるということだと思います。

ただ、(ここからまた「Web進化論」関連の話に無理矢理持ちこむわけですが)、従来の常識では、「負荷限界のある」システムは金になるシステムであり、それの無い(=トランザクションの無い)システムは金にならないシステムでした。業務のデータはクローズされた世界で発生するし、「一件や二件はまあいいか」ということはほとんどあり得ません。だから、純粋に技術的に見て高度かそうでないかという観点では、どちらも同等ですが、「どちらが金になるか」という点では、明らかに上下関係がありました。「負荷限界」のある中で高度なことをやる方が、金になる技術だったんです。

その力学をグーグルが変えてしまったんですね。

グーグルは、「トランザクションがない代わりに負荷限界もない」という、従来の常識では、絶対に金にならない領域の技術を高度化することで大儲けしたんです。

ライブドアは、グーグルのように、「負荷限界の無い系技術」を積極的な攻撃の道具とはしてませんが、ライブドアの商売の中に「突発的な急拡大」という要件は、いろいろな文脈で重要な位置を占めていたと思います。そういう意味では、ライブドアの高度な「負荷限界の無い系技術」は事業の基盤であったという見方は間違ってないと私は思います。

それと、「負荷限界の無い系技術」が金になるということが、私も含めて「負荷限界有る系技術」にプライドを持つ従来型の技術者が抵抗を感じる所で、この議論が擦れ違うポイントはそこではないかと。だから、まあ結論は「Web進化論」しっかり嫁ということなんですが。