【感想・ネタバレ】Googleを支える技術 ……巨大システムの内側の世界のレビュー

あらすじ

たとえば,ふだんなにげなく行っているWeb検索。背後には,想像以上に膨大な計算,多数のコンピュータの働きがあります。
本書では,論文やWebなどで公開されているパブリックな情報をもとに,Googleの基盤システムについて技術的な側面から解説を試みています。世界規模のシステムにおける『分散ストレージ』『大規模データ処理』『運用コスト』など注目の話題を盛り込み,学部生をはじめ初学者の方々にもお読みいただけるように基礎知識から平易に説明します。

...続きを読む
\ レビュー投稿でポイントプレゼント / ※購入済みの作品が対象となります
レビューを書く

感情タグBEST3

このページにはネタバレを含むレビューが表示されています

Posted by ブクログ

ネタバレ

「ハードディスクはいつ壊れるか」
年間平均故障率(AFR)…いつどこで作られたかが重要
利用頻度には相関がみられない
温度は低い方が故障しやすい傾向(25℃以下)
故障率に大きく影響するSMART値
①スキャンエラー、②リアロケーション数、③オフラインリアロケーション、④リアロケーション前のセクタ数(ProbationalCount)
SMART値に関係なくいきなり壊れるものもある。
すべてを予測するのは難しく、壊れる前提での設計が必要。

「Googleのソフトウェア開発」
小人数(2~6人)のプロジェクトチーム
就業時間の20%を新しいことに費やす20%ルール
コードレビューを通じてコーディングスタイルを統一
1週間以上の作業を要することには設計ドキュメントを作成
アイディアはDBに登録、オンライン投票で意見を認められると20%プロジェクトスタート
基本設計文書
①背景・目的、②設計、③メンバー、④セキュリティ・プライバシーの考察等、⑤テスト・モニタプラン
デモサイトで意見収集

情報共有
①メーリングリスト・ブログ、②社内ポータル・Wiki・GoogleDocs

プログラミング言語
①C++、②Java、③Python
ちなみに2017/4は、
①C/C++、②Java/JavaScript、③Python、④Go、⑤TypeScript

Googleのプロジェクト管理はWrikeを使用している

0
2018年05月19日

Posted by ブクログ

ネタバレ

フォトリーディングNo.53

目的:Google技術をおさらい

トリガーワード:Web検索エンジン、インデックス、クローラ、ランキング、データセンター、クラスタ、分散、GFS、マスタ、チャンクサーバ、クライアント、レコード、スナップショット、障害対策、ビッグテーブル、タブレットサーバ、キャッシュ、コミットログChubby、バックアップ、ロック、イベント、MapReduce、キー、値、シャッフル、分散、grep、分散ソート、アグリゲータ、電力、クロック周波数、SMART値、開発、コードレビュー

質問:①インデックスをどのようにつくって使うのか?
②Googleの初見重要そうな技術は?

~20120616ポストレビューここまで~
~20120619アクティベーションここから~

質問に対するまとめ:
①クローラが収集してリポジトリに格納したWebページを取り出し、インデックスを生成する。
A:構造解析(URIとWeb情報)→B:単語処理(ページ内の単語の位置、装飾)→C(リンク情報(アンカーテキスト)→Dランキング情報(ページランク、アンカーテキスト、単語の位置大きさ)の4つのインデックスを順に追って生成し、検索サーバから利用者へ渡す。
②GFS:Google File System:分散ファイルシステム。多数のマシンで巨大ストレージ。インデックスの更新、参照などに。
ビッグテーブル:GFSより小さなデータを読み書き。DBと多次元マップを合わせたようなデータモデル。クローラの集めたページの格納などに。Google AnalyticsやGoogle Earthにも。
MapReduce:分散処理の基礎技術。インデックス生成過程や分散grep、分散ソートに。Mapでデータから新データを生成し、Reduceでまとめあげる。Key&Vallue。

雑感:知らない用語、内容多数。サービスだけでなく、裏の技術も意識する必要あり。Google云々以前の前提知識が不足しているので、分散処理などは理解しておく。

0
2013年01月01日

Posted by ブクログ

ネタバレ

Googleを支える仕組みを、ソフト、ハードだけでなく、組織の仕組みまで含めて解説。
ためになる内容が多いんだけど、特に序盤から中盤は教科書っぽくて読みづらい。もっと興味の強くなった時にまた読みたいかも。

0
2012年11月13日

Posted by ブクログ

ネタバレ

〇感想
 ・良かったところ:
   ・世界中のウェブから高速でデータを検索する
    Googleの技術を知ることができた。

    Googleはウェブから事前にページを探し、
    検索に適する形式で内部データベースに保存しておく。
    それをベースにユーザーのキーワードで検索する。
  
    それを支えるのが、インデックスや分散コンピューティング。
    Google=検索エンジンとしか考えず、
    中身については知らなかったが、理解が深まった。   

 ・悪いところ
  ・プログラミングを記載して多くのページを割いているが、
   クローラなど重要なことを詳しく書くべき。
   プログラミングを書く本ではない。

〇本の内容
 ・クローラ
 ・インデックス
 ・MapReduce
 ・Googleのデータセンターの構成

0
2012年03月12日

Posted by ブクログ

ネタバレ

インデックスの話などは押さえておきたい。(転置インデックスなど)
・当然だが、大規模化したシステムとそうで無いシステムは大きく違う。その典型が、GFSとwork queue
cpuバウンドな処理はwork queue 、ioバウンドな処理はGFSというように、スケールアップなシステムを作る。
・Googleなど大規模システムでは、①ソフトウェアでの信頼向上②大量なハードウェアでの負荷分散③コストパフォーマンスの高い安価なハードウェアという観点で大規模システムを作っている。
やはり、ソフトウェアのスキルが重要。
・gfsの概要が理解できた。大規模システムにはなくてはならない、ネットワークファイルシステムだと感じた。冗長性や、スケーラビリティ技術が興味深い。チャンク単位での取り扱いや、マスターの動きなど興味深い。そういったシステムに自分も触れてみたい。
・大規模システムでは、レガシーなスキル、知識も大事だが、大規模を想定した自動運用などの工夫がかなり重要になってくる。そう考えると、今までの手法は通用しないことがよくありそうだ。
・分散dbのbigtableは興味深い。
クライアントはライブラリ経由でのアクセスで、抽象化されたアクセスを行う。唯一のロックが行ロックのようなことらしい。blob型のようなことらしい。xmlデータベースともちかいのかなぁ?
・bigtableのアルゴリズムが難しい。一度で理解できない。最大容量は2EBらしい。
・chubbyという分散ロックサービスがあるらしい。gfsやbigtableの機能を支える基盤技術のようで、排他制御を実現するみたい。また、分散ファイルシステムであり、変更がすぐに反映されるため、dnsサービスとしてもしようしているみたい。
・hadoopのところは興味深い。map とreduceの概要があり、これからどんどん勉強していきたい。
sawzallという分散処理で使われる言語があり、共通化が行われている。rdbmsのsqlみたいなもの。
・プロトコルバッファという、共通のプロセス間通信の仕組みがあるらしい。
・大規模分散システムはとても興味深い。hadoopとか、本当に勉強していきたい。hdfsやpigなどは、googleの分散処理システムのオープンソースプロジェクト。
・電力消費の説明は説得力がある。cpuは最大の消費で大体半分前後を占めているみたい。以前の自分で測定した時のものをみて納得。
『パソコン起動時稼働時80〜100W程度 アイドル時60W前後 電源オフ 5w
パソコンプライムPC
電源オフ 0w フル稼働 89w』
・動作クロックを上げるのは消費電力に大きな影響を与えるらしい。パフォーマンスを20%上げるには1.2*3乗で1.78倍の電力消費になるという話。故に、クロック周波数を上げるのは限度があり、マルチコアCPUの流れにいっている。
・電力消費のところはとても詳しく、かつ、計測データを用いた説得力あるせつめいだとおもった。また、実際の機器のデータシートを元にした電力見積もりと、最適化した電力設備設計ではコストが二倍ほど違うというのも、感心した。
・節電対策としてのクロック周波数のコントロールは確かに有効みたい。実際の変化を計測してみたいものだ。
・hddの故障頻度は温度や読み書き頻度に影響のあるという通説は、疑って見る必要があるらしい。また、smartで障害の予兆は多少分かるみたいだが、それでも64%程度で、残り36%はなかなか予兆がないみたい。なので、壊れても大丈夫なようにシステムを組んでおくことが大事

・全米のデータセンターのスケールにはテンションがあがる。ひとつのさいとあたりに、何十万台という規模のよう。

0
2011年07月07日

「IT・コンピュータ」ランキング