Hadoopは汎用機の夢を見るか?

オープン系の歴史は、基本的に汎用機との戦いでした。個人的にも自分の戦いも、わりとまじめに汎用機との戦いでした。Linux? おもちゃですね。Java? 飲めるの?Object指向? 品質高いの? ・・・まぁこんな感じでしたね。確かにLinuxはもはや標準になりました。Javaでの開発は普通になりました。Object指向以外の開発はまぁ普通にないですね。・・・しかし、残念ながら基幹バッチは未だに汎用機です。汎用機は未だに現役であり、基幹処理の根っこは、いまだ汎用機で動いています。信頼性は突出しているし、パフォーマンスもバッチ処理に関しては依然として最強だと言えるでしょう。新人COBOLな人のバッチが、ハイパーなOracle使いのSQLバッチを軽く凌駕する事は、まだ普通にあります。・・・なぜか?

多重度が違いすぎますね。

汎用機はハードウェアからOSレベルまですべて、多重度が上がる事を前提に処理しています。残念ながら、この部分では未だにオープン系は(あえて言いますが)”圧倒的”に後塵を拝しています。確かにconcurrentの処理は素晴らしいし、multi-threadも普通に書けるようにはなりました。が、ではスレッドを二倍にしたら、処理は二倍になりますか?・・・なりませんね。汎用機は多重度は簡単にあがります。特に大型汎用機は無敵の感すらあるんですよ。未だに。

過去のレガシーマイグレーションの失敗の原因は大抵はバッチ処理だったことがよくあります。特にもともと多重度依存でパフォーマンスを稼いでいた汎用機バッチは、オープン化には大抵失敗しています。勿論、とんでもない金を汎用機と同じ位かけて、オープン系で再実装するすればやってできないことはありません。が、結果、パフォーマンスが頭打ち、信頼性を落ち、運用で手こずる。一度はオープン化したが、結局、戻しました、なんていうプロジェクトすらあります。汎用機バッチは、安泰ですよ。当分、続くはずです。バッチの突抜けで、企業のトップが首になっても、汎用機がお払い箱になるのは来世紀ぐらいの勢いですし。しかしながら・・・

Hadoopは多重度勝負であれば、汎用機なぞ相手にもならない。

Hadoopは簡単に多重度は上がります。100とか200とか普通だし、1000とか別に無理じゃないし。まぁ、サーバー足せばいいだけなので。これに勝てる汎用機は存在しません。特に汎用機が得意とする、順編成ファイルをベースにしたフルアクセルのマージソートや結合処理のたぐいは、汎用機vsHadoopでは、汎用機は100回勝負して、100回とも負けると思います。(ま、もちろん処理によりますが!)

そもそもAsakusaが特殊領域みたいな意見も時々聞きますが、汎用機上がりの人がみればむしろ順当に見えると思います。というのは見るところ、キャリアを積んだ人ほどベースのIOの仕組みやローレベルのアーキテクチャで、システム全体を評価し、カテゴライズする傾向にあります。そーゆー人は「要はファイルをバラまいて並列バッチだろ?そりゃ速いよ。上位の仕組みはまぁいろいろ有るだろうけど、根っこはそんな感じでしょ?」そんな風に見ます。・・・今の、基幹バッチをどうするか?自分の目の黒いうちになんとか別の形にしたい、という執念を持っているひと、すごく多いです。

勿論だからと言って汎用機の信頼性にHadoopがすぐに勝てるか?というそうではありません。信頼性については天と地というよりも、地表と月面ぐらい離れています。汎用機並の開発環境や道具立てがあるか?というとそうではありません。ファイル操作一つとってもまったくユーザビリティが異なります。しかし、Hadoopも信頼性をあげてきています。もともと多重度をあげる事には長けている仕組みなので、ちゃんとやればできるところはできます。開発環境や道具立てもAsakusaだとか、なんだかんだとかが地ならしをしつつありますし。

大事なことは、汎用機のバッチでとられていた時間を取り戻せるということです。世の中のITの”新技術”は大抵は、まず業務側の変更を先に強制することが多いです。BIだろうと、CRMだろうと、SCMだろうと基本的には同じです。「ITだけではメリットはでない。まずはそのコストを吸収するために業務側に切り込まなくてはいけない」それはそうです。でも、これすごく大変。そもそも簡単に業務改革できていたら、もっと日本はよくなっていますよ・・・。「汎用機のバッチでとられていた時間を取り戻せる」というのは、表面時はまったく「業務改革」にはなりません。ところが、おもしろいことに、バッチが極端に短くなると、いろいろ余波が出ます。あれもできるし、これもできるし・・・。いままで、「ITの制約で、できなかったことができるようになる」これが静かな業務改革につながることがままあります。

Hadoopは汎用機の夢を見るか?・・・・オンライン系はほぼオープン系に凱歌があがりつつあります。むしろ引き離しつつあると言ってもいいでしょう。最後の砦は、多重度をベースにしたバッチ処理でした。Hadoopが汎用機の代わりに「直接的」になるというわけではありません。ただし、従来の汎用機バッチを巻き取れる仕組みが出てきたというのは事実です。もちろん、現行のHadoopアーキテクチャが最善とは言えません。今後はさまざまに進んで行くと思います。・・・Hadoopは汎用機の夢を見るか? 非現実的な話ではないと思います。