PCサーバー用の3.5インチHDDの回転数が,現時点で最高の1万5000回転/分に達したのは2001年のことだ。またIntel製プロセッサの動作周波数の最高記録は,2004年11月に発売されたPentium 4の「3.8GHz」であった。PCサーバーの各構成要素の単体性能は,長らく頭打ちの状況にある。

 クラウド・コンピューティングでは,データ処理の大規模化,高速化が必須だ。だが,単体ハードウエアの性能向上はあまり期待できない。そこで,プロセシングやデータのI/O処理をネットワーク経由で大量のPCサーバーに分散させ,処理の並列度を高めることが必要になる。

 クラウドの主要プレーヤは,大規模分散データ処理技術の開発にしのぎを削っている。先行しているのがGoogle。分散処理に特化したストレージ技術「GFS(Google File System)」や,分散メッセージ処理技術「Map Reduce」を開発した(図4)。

図4●主な分散処理技術とその開発企業や利用企業
図4●主な分散処理技術とその開発企業や利用企業
[画像のクリックで拡大表示]

 GFSでは,ファイルは64Mバイトのブロック(チャンク)に分割され,3台のサーバーに重複保存される。この3台の組み合わせは一定ではない。つまり,1個のファイルが最低でも数十台のサーバーに重複して並列保存されるのだ。こうして,データI/Oの高速化と冗長化を図っている。分散保存されているデータをつなぎ合わせて処理するのがMapReduceの役割となる。

 GFSやMapReduceは「Hadoop」として,オープンソース化されており,Yahoo!や楽天も使用している。楽天では2008年に,新しい商品レコメンド・エンジン(ある商品に対するお勧めの商品を,ユーザーの購買データを基にリストアップする機能)を,Hadoopベースで開発した。

 楽天技術研究所の森正弥所長は「Hadoopの良いところは,サーバーを追加した分だけ,処理能力がリニア(線形関数的)に増加するところ」と,分散処理技術の効用を語る。楽天では,独自の分散ストレージ技術「Roma」と分散処理技術「Fairy」を開発中だ。両ソフトウエアとも,オープンソースとして公開する予定だという。