GoogleはMapReduceを使って、「new」「york」「restaurants」という単語をすべて含むウェブページをまとめたインデックスを比較的短時間で作成できる。「適度な時間で作業を終えるには、数千台のマシンで実行できなければならない」(Dean氏)
Googleでは、MapReduceソフトウェアの利用が増えている。MapReduceによるジョブは2004年8月には2万9000件だったが、2007年9月には220万件になった。その間、1件のジョブの平均作業時間は634秒から395秒に減ったが、MapReduceのタスクの出力は193テラバイトから1万4018テラバイトに増えたとDean氏は言う。
Dean氏によれば、Googleでは1日に約10万件のMapReduceジョブを実行し、1件のジョブが占有するサーバは約400台で、所要時間は約5〜10分だという。
ここからおもしろい数字を導き出すことができる。サーバがMapReduce専用で、各サーバが実行するジョブは一度に1件だけとし、24時間稼働すると仮定すると、各ジョブの所要時間が5分の場合、MapReduceは約13万9000台のサーバを占有していることになる。ジョブの所要時間が7.5分であればサーバ台数は20万8000台、10分ならば27万8000台になる。
わたしの計算はまったく的外れの可能性もあるが、質的な面から見てもこれは圧倒的な計算能力である。
言うまでもなく、MapReduceはGFSと同様に、サーバの問題を回避するために開発されたものである。
「マシンが故障した場合、マスターは、そのマシンに割り当てられていたタスクを把握しており、他のマシンにそのマップタスクを引き継ぐよう指示する。たとえ100件のマップタスクが失われても、100台のマシンでタスクを再開できる」(Dean氏)
以前、1800台のサーバで構成されるクラスタでの保守作業中に、本格的なMapReduceの信頼性のテストが行われた。作業担当者が一度に80台のマシンの電源を抜いたところ、残りの1720台のマシンがその穴を埋めた。「動作速度は少し落ちたが、すべて終了した」とDean氏は語る。
また、Dean氏は、2004年のプレゼンテーションでは、1800台のサーバで構成されるクラスタで1600台のサーバが故障しても耐えられると述べていた。
そんなわけで、Googleではすべてが順調だ。しかし、おそらくGoogleは満足しておらず、今後なすべきことをたくさん考えている。
ほとんどの企業は、ジョブをサーバから別のサーバにスムーズに移動する方法を考えているが、Googleの課題はけたが違う。Googleはジョブをデータセンターから別のデータセンターに移動できるようにしたいと考えている。しかも自動的にだ。
「Googleの次世代インフラは、個々のインスタンスではなく大量のマシンで動作するシステムにしたいと考えている」(Dean氏)
現在、大規模ファイルシステムには、GFS/Oregon、GFS/Atlantaなど異なる名前が付けられているが、これらは互いのコピーという位置づけである。「名前空間をひとつにしたい」とDean氏は言う。
これらはGoogleの規模を考えれば実に難問だが、Googleよりも規模の小さい多くの企業は間違いなくGoogleをうらやましく思うだろう。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境
トラディショナルからモダンへ進化するBI
未来への挑戦の成功はデータとともにある