2009年9月12日土曜日

日経コンピュータ2009年9月2日号

本屋をブラブラしていたらGoogle特集ってことで思わず買ってしまった。いわゆる特集記事だけでなく、クローズアップやインタビューなど通常記事もGoogleを扱っていた。まさしく、1冊丸ごとGoogle特集。その中で1コンテンツだけ紹介。

「グーグルは”異形”のメーカー ここが違う、10個のポイント」

従来のコンピューティング(左)とGoogleコンピューティング(右)の10の違い
  1. 水平分業-自前主義
  2. 線形的データ増加-情報爆発
  3. スケールアップ-スケールアウト
  4. 単体プロセッサの性能向上-メニーコア
  5. ハードウェアベースの耐障害対策-ソフトウェアベースの耐障害対策
  6. 手続き型言語-関数型言語
  7. ACID-エラー忘却型コンピューティング
  8. RDBMS-キー・バリュー型データストア
  9. トランザクション処理中心-クエリ処理中心
  10. ハードディスク-メモリ

自前主義
ソ フトウェアだけでなく、ハードウェア(PC)も自前で用意している。さらには、10Gイーサ・スイッチやデータセンターも自前。データセンターの基盤とな るソフトのGFS(Google File System)、BigTable、Chubby、MapReduce、Sawzallなどすべて自社で開発した。理由は、Googleのソフトを同じ規 模でテストできないのは不十分なため、他社での開発は不可能なため。

スケールアウト
1 台の性能を上げるスケールアップではなく、多くの台数に分散させて処理させるスケールアウトを採用。1台で収まる場合応答時間は1000万分の1秒となる が、ネットワークを介すと1万分の1秒まで性能が落ちる。どんなに性能の高いコンピュータを用意したとしてもGoogleの規模では1台で収まることはな い。必ずネットワークを介すのであれば、スケールアウトした方がコストパフォーマンスがよくなる。

ソフトウェアベースの耐障害対策
仮にMTBF(平均故障間隔)が30年の超高信頼性のハードだとしても、データセンターで見れば毎日故障が起きることになる。そうであれば、ソフトウェアで障害対策した方が安定する。

エラー忘却型コンピューティング
RDB のSQLに相当する分散処理用のインタプリタSawzall。これは、エラーが起こってもフラグを立てるだけで処理を継続することが可能。通常のインタプ リタはエラーが起こると処理を停止する。予想していたデータではない入力があった場合、無視して先に進むことでとにかく最後まで処理する仕組みで、 2004年にMITのマーティン・リナード氏が提唱。Googleは翌2005年に採用した。

キー・バリュー型データストア
GoogleのDBであるBigTableが採用。通常のRDBに比べてスケールアウトしやすい特徴がある。

クエリ処理中心
エ ラー忘却型コンピューティング、BigTableの厳密トランザクション省略などACIDとは相容れない構成。これは、Web検索やインデックス作成は、 更新はなく、読み出しを高速化するため。近年のGoogle DocumentやGMailは、書き込みの高速化も求められるため、GFSの抜本的な見直しを開始した。

メモリ
現 在のGFSは、チャンク(64Mのデータの塊)をどのサーバに保存するかを管理しているマスターサーバが数千台に1台しかないシングルマスタ構成。次期 GFSでは、マルチマスタ構成で、チャンクサイズを1M(ファイルの容量が小さく、個数が多いAPに対応可能)になる。これは、データ永続化をハードディ スクからメモリ(SSD)に変更する布石を思われる。Amazon DynamoやWindows Azureは既にSSDを採用している。

0 件のコメント: