Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースと応用システム:Google

 データベースと応用システム:Google

Transcript

  1. (c)長岡技術科学大学 電気系 1 データベースと応用システム Google 山本和英 長岡技術科学大学 電気系 Google、Google ロゴ、Google

    検索 ロゴ、Google 音声検索™、Google 音声検索 ロゴは、Google Inc.の商標または登録商標です。
  2. (c)長岡技術科学大学 電気系 2 Googleの歴史 • 1998年9月7日 – 創業。検索件数1万件/日 – 8台のパソコンと40個以上のHDD

    • 1999年9月 – 検索件数300万件/日 • 2000年 – 検索件数1800万件/日 • 2004年 – NASDAQに株式公開
  3. (c)長岡技術科学大学 電気系 3 Googleの基本的な考え方 • ソフトウェアで信頼性を高める – UPSやハードウェアRAIDは使わない • 機器の高性能化よりも負荷分散

    – コストパフォーマンス • 基本部分は独自技術で – GFS (Google File System) – Work Queue
  4. (c)長岡技術科学大学 電気系 4 検索エンジン

  5. (c)長岡技術科学大学 電気系 5 検索エンジンの仕組み • 検索バックエンド – クローリング(Webデータ収集) – インデックスの作成

    – 時間をかけて処理して構わない • 検索サーバー – インデックスを参照して検索結果を返す – 可能な限り高速に処理する必要がある – 処理の分散化 – 検索キーはすべて数値化してインデックスを作成
  6. (c)長岡技術科学大学 電気系 6 クローリング:注意点 • 特定サイトにアクセスが集中しすぎてはいけない – アクセスの分散 • アクセスできないこともある

    – アクセスの再試行 • 1ページ1秒でも1日86,400ページしかアクセスでき ない – 並列処理、URLサーバーによる制御 • ページを自動生成するサイトがある – ページ収集がいつまでも終わらない
  7. (c)長岡技術科学大学 電気系 7 インデックスの作成 • Webページの構造解析 – 検索に必要なタイトル、テキスト、URL等を抽出 • 単語情報の抽出

    – ページID, 単語ID, 位置, サイズ, スタイル, … • 転置インデックスの作成 – 単語IDからページIDへ • リンク情報のインデックス作成 – ページAからページBへ • ランキング情報のインデックス – PageRankの計算
  8. (c)長岡技術科学大学 電気系 8 実際の検索処理の流れ • まとめ役(Google Web Server, GWS)が各インデッ クスサーバーに検索依頼

    – インデックスサーバーは別個のページ集合を担当してい る。 • 各インデックスサーバーが検索上位を返す – 検索要求があった時に全インデックスサーバーにランキン グ上位ページIDを提出する。 • GWSが結果をまとめて上位ページを決定 • GWSが関係するドキュメントサーバーに要約作成を依 頼 • ドキュメントサーバーは要約作成してGWSに返す
  9. (c)長岡技術科学大学 電気系 9 検索サーバー その他の処理 • 「もしかして」検索 • 広告の選別、作成 • キャッシングによる処理の高速化

  10. (c)長岡技術科学大学 電気系 10 Google File System (GFS)

  11. (c)長岡技術科学大学 電気系 11 GFSの概要と特徴 • 巨大なストレージを作り上げる技術 • 全ファイルは常に3ヶ所に保存されている • 大きなファイル(数百MB)の書き込みに適している

    • 何度も書き込むことに向いていない • ファイルをロックする機能がない
  12. (c)長岡技術科学大学 電気系 12 GFSの役割分担 • マスタ – GFS全体を管理。どのチャンクサーバーに何が保存さ れているかをすべて管理・制御する •

    チャンクサーバー – ファイル置き場。ファイルの断片(64MB)が大量に保存 されている。 – 1ファイルは3チャンクサーバーに保存される。 • クライアント – ファイルの読み書きをマスタに依頼する。
  13. (c)長岡技術科学大学 電気系 13 GFSの障害対策 • チャンクの障害 – チェックサムの照合によって同一性を判断する – 「暇」な時にチェックサムを再確認する

    • チャンクサーバの障害 – マスタとの交信によって障害や新規設置が分かる • マスタの障害 – GFS外部で常に監視し、異常の時は即時交代 – 更新ログを常に別の計算機にコピー – チャンクの情報はチャンクサーバが教えてくれる
  14. (c)長岡技術科学大学 電気系 14 GFSの復旧時間:実験結果 • チャンクサーバ数:200、各チャンクサーバーは 15,000程度のチャンク(=600GB) • チャンクサーバ1台が故障 –

    新しいコピーが作られるまで23分 • チャンクサーバ2台が故障 – 266チャンクがコピーなし状態になる – このようなチャンクは優先的にコピーされる – 2コピー以上の状態に復旧するまでの時間:2分 • 結論:データの損失可能性は限りなく低い
  15. (c)長岡技術科学大学 電気系 15 Bigtable

  16. (c)長岡技術科学大学 電気系 16 Bigtable • RDBでは扱えないほどの大量のデータにアクセス するための分散システム • 列は行キーとコラムキーの2種類ある。コラムキーの 数は行によって違っていても構わない。

    • 時間概念(タイムスタンプ)があり、行キーとコラム キーが同じでも時刻が異なる複数バージョンのデー タがある。 • 例:検索エンジンインデックス – 行キー:ページURL – コラムキー:リンク元ページ情報 – タイムスタンプ:ページ収集時間
  17. (c)長岡技術科学大学 電気系 17 Bigtable:続き • トランザクション処理がある。 • テーブルはタブレット(tablet)という単位に分割さ れ、複数のサーバで分散管理される。 •

    行キーはソートされ、タブレットには連続する行キー が含まれる。 • タブレットはメタデータという形で管理される。メタ データはルートタブレットが管理し、ルートタブレッ トの場所はChubbyが保存する。 – 以上はB+木形式で管理されている。
  18. (c)長岡技術科学大学 電気系 18 高速アクセスの工夫 • ファイルの圧縮 • メタデータなどのオンメモリ化 • 読み込みキャッシュ

    – スキャンキャッシュ:最近アクセスされたデータ – ブロックキャッシュ:「続き」のデータ • 書き込みの工夫 – コミットログの一括処理 – コミットログの書き込み先を2つ用意
  19. (c)長岡技術科学大学 電気系 19 Chubby

  20. (c)長岡技術科学大学 電気系 20 Chubby • 小さな分散ファイルシステム • 以下の機能を持つ: – ファイルシステム

    – ロックサービス(排他制御) – イベント通知 • 実データというよりも、データ・システム管理のため の設定や情報を書き込む。Windowsのレジストリの ようなものに近い。 • DNSの代替としても使われる。各マシンがChubby に自分でアドレスを書き込む。
  21. (c)長岡技術科学大学 電気系 21 Chubby:システム構成 • 1セット(Cell)は5台の計算機(レプリカ)からなる。 うち1台をマスタと呼ぶ。 • マスタとレプリカは全く同じ情報が書かれている。 マスタの情報を変更すると直ちに4台のレプリカにコ

    ピーされる。 • クライアント(他の計算機)との情報の読み書きは すべてマスタに対して行う。マスタが故障すると直ち にレプリカの1台がマスタになる。 • レプリカが半数以上故障すると、セルは活動を停 止する。
  22. (c)長岡技術科学大学 電気系 22 Chubby:ファイルアクセス • 1つのファイルサイズは最大256KB • ファイルやディレクトリは(読み込み、書き込み、変 更)が可能なユーザを定義する。 •

    ファイルは共有ロック、排他ロックが可能。これを 使って外部資源(例えばGFS)のロックに使える。 • 障害時対応のため、クライアントと定期的(10秒~ 60秒)に通信を行っており、通信がない場合は自 動的にロック解除される。
  23. (c)長岡技術科学大学 電気系 23 イベント通知 • ファイルの作成や内容変更時にクライアントに通知 される。 • 利用例1:サーバ監視 –

    サーバが一時ファイルに自分のアドレスを書いてマスタ が監視。プロセス停止すると一時ファイルが自動削除 されるので、起動中のサーバリストが得られる。 • 利用例2:マスタ決定 – 各サーバは競争してマスタになろうとする。排他ロックで きたプロセスだけが自分のアドレスを書き込むことがで き、書き込まれた場合は監視しているサーバに通知され る。
  24. (c)長岡技術科学大学 電気系 24 データセンター https://www.youtube.com/watch?v=7h3LtXxR55Y

  25. (c)長岡技術科学大学 電気系 25 http://www.google.com/about/datacenters/inside/locations/index.html

  26. (c)長岡技術科学大学 電気系 26

  27. (c)長岡技術科学大学 電気系 27 計算機 • Google保有の計算機は2800万台(2019年6月)? – https://news.netcraft.com/archives/2019/06/17/june-2019-web-server-survey.html • 10万円

    x 2800万台 = 2.8兆円 • 5年で交換したとすると、毎年5600億円 – (ネパール、パラグアイ、リビアの国家予算に匹敵) • 必ずしも高機能、高額な製品を使うわけではな い。価格性能比の最も高い製品を選ぶ。
  28. (c)長岡技術科学大学 電気系 28 電気代 • 1kWhで10円、1台100Wとして、2800万台を終日稼 働させると、年に2500億円 – (ブルネイ、ラオス、モザンビークの国家予算に匹敵) –

    (長岡市の今年度予算:2,185億円) • CPU性能の向上に伴って使用電力も向上傾向 • 消費電力を削減する様々な工夫 – CPUのクロック周波数を落とす – PC電源を開発して電源効率を上げる – パワーキャッピングによるデータセンター電力の平準化
  29. (c)長岡技術科学大学 電気系 29 ハードディスクの故障 • Googleが2007年に10万台以上のHDDドライブの 故障傾向について調査 • 結論 –

    使い始めの頃はやや壊れやすい – 長く使うと壊れやすくなるわけではない – よく使うと壊れやすくなるとも限らない – 温度が高いほど壊れやすいということもない。30~4 0度に保つと最も故障率を低下させる。 – 結局、いつどこで作られたかが一番影響している?