Googleを巨大にした友情(1/9)

Googleを巨大にした友情(1/9)

1.Googleを巨大にした友情(1/9)まとめ

・Google AI部門トップのジェフ・ディーンとサンジェイ・ゲマワットの友情の物語
・この二人がいなければGoogleは、そしてインターネットも現在の姿ではなかった
・物語はサンジェイがGoogleに入社した数か月後、Googleに最大級の危機が訪れた時から

2.Jeff DeanとSanjay Ghemawat

以下、www.newyorker.comより「The Friendship That Made Google Huge」の意訳です。元記事の投稿は2018年12月3日、James Somersさんによる投稿です。Jeff DeanのTwitterのトップにかなり長い期間固定されているのですが、あまりに長文なのでずっと先送りしてました。しかし、物語としてとても良い話で且つ面白いです。

2000年3月のある日、Google社内で最高のエンジニア6人が急ごしらえの戦略ルームに集まりました。 同社は前例のない危機の最中にありました。

1999年10月、インターネットの索引を作成するGoogleの基幹システムが動かなくなりました。ユーザーはgoogle.comで検索する事はできましたが、表示される検索結果は5か月前に収集されたページでした。

エンジニア達が気づいていた以上の事が懸念されていました。Googleの共同創設者であるLarry PageとSergey Brinは、Yahooに提供する検索エンジンを強化するための取り決めを交渉していました。前年比で2倍に拡大したインターネットの規模に追いつくために、彼らはその時に持っていた索引より10倍大きい索引を提供すると約束していたのです。この緊急事態の解決に失敗した場合、googleは昔のインターネットを懐かしむためのタイムカプセルとなり、Yahooとの取引は崩壊する可能性があり、そして同社はその資金繰りに窮する危険性がありました。

階段のそばの会議室で、エンジニアたちは木挽台で扉を固定し、彼らのコンピュータを運び入れました。小さな体格で甲高い声、27歳のCraig Silversteinは、壁から離れた位置に座りました。SilversteinはSergey Brinの居間がGoogleのオフィスであった頃に入社したGoogleの最初の従業員です。基幹システムのコードの大部分は彼が書き換えました。

4日目の夜になっても、SilversteinとBogdan Cocoselというルーマニアのシステムエンジニアは解決の糸口さえつかめませんでした。「私たちが行っていた分析のいずれも意味をなしませんでした」とSilversteinは当時を回顧します。「全てが壊れており、その理由はわかりませんでした。」

Silversteinは彼の左奥に座っていたSanjay Ghemawatの存在をあまり気にとめていませんでした。Sanjayは、M.I.T卒の33歳、太い眉とこめかみ部分にかけて灰色がかった黒い髪、寡黙な男性で、わずか数ヶ月前の12月に入社したばかりでした。

Sanjayは前職のデジタル・イクイップメント社(DEC)から彼の31歳の同僚、ひょろ長くエネルギッシュなJeff Deanを追ってきました。JeffはSanjayの10ヶ月前にDECを去っており、彼らは非常に仲が良く、プログラムを一緒に書くことを好みました。

戦略ルームで、Jeffは自分のデスクではなく、Sanjayの机に椅子を移動しました。Sanjayがキーボードを操作し、Jeffは椅子にもたれかかり、報道アナウンサーのインカムに直接指示を出すディレクターのように、Sanjayが間違えた箇所を指摘したり、良く書かれたコードを褒めたり、会話しながら作業を進めていきました。

JeffとSanjayはおかしくなった索引を見直し始めました。彼らは、一部の単語が欠落していること -「mailbox」という単語で検索しても結果が0件しか出てこない- 及び、他の単語が順序どおりにリストされていないことを発見しました。何日もの間、彼らはプログラムの欠陥を探し、そのロジックの解析に没頭しました。セクションごとに、すべてをチェックしました。しかし、彼らはそのバグを見つけることができませんでした。

プログラマーは、時折、ソフトウェアをユーザーインターフェイスからハードウェアに至るまでの階層構造として概念化することがあります。この階層構造の最奥、ソフトウェアがハードウェアと出会う場所を調べる事は、純粋なコード解析の世界から離れてそれが依存しているハードウェア、電気とシリコンの原始的な世界に目を向ける事です。

戦略ルームでの5日目、JeffとSanjayは彼らが探していた問題は論理的ではなく物理的な問題である可能性を疑い始めました。彼らは、ごちゃ混ぜになった索引ファイルを、その最も一般的な形式のバイナリコードに変換しました。彼らは彼らのマシンが見ているものを見たかったのです。

Sanjayのモニターに1と0の太い列が現れました。各行は索引付きの単語を表しています。Sanjayは指摘しました。0であるべき数字が1だったのです。JeffとSanjayは全ての誤った単語をまとめあげ、彼らはそこに一定のパターンを見つけました。全ての単語で同じ種類の誤り。SanjayはJeffを見ました。彼らのマシンのメモリチップはどういうわけか破損していたのです。

何ヶ月もの間、Googleではハードウェア障害の数が増え続けていました。問題は、Googleが成長するにつれて、コンピューティングのインフラ基盤も拡大していたことです。

コンピュータのハードウェアはめったに壊れませんが、ある時期になると壊れます。そして、一度壊れると常に計算結果がおかしくなります。回線は切れ、ハードドライブは断片化し、マザーボードは熱暴走します。最初に設置した場所では動かないマシンもありますし、説明できないほど動作が遅くなるものもあります。

奇妙な環境的要因が働いたのです。超新星が爆発すると、爆発波はあらゆる方向に散乱する高エネルギー粒子を生成します。科学者たちは、宇宙線として知られている誤った粒子の1つが地球上のコンピュータチップに偶然当たると計算結果が0から1に反転する可能性があると信じています。世界で最も堅牢なコンピュータシステム(NASAや金融機関など)では、単一のビットが反転しても耐えることができるような特殊なハードウェアを使用しています。しかしGoogleは、まだ新興企業のような運用体制で、そのような特殊なハードウェアではなく安価なコンピュータを使っていたのです。

会社は変化の時に達していました。そのコンピューティングシステムは非常に巨大化したため、通常ならば滅多に起こらないようなハードウェア障害が避けられなかったのです。

JeffとSanjayは一緒に、問題のあるマシンを補完するためのコードを書きました。その後、まもなく、新しい索引システムは完成し、戦略ルームは解散されました。Silversteinは当惑しました。彼は優れたプログラマーでデバッグも上手でした。しかし、バグを見つけるための鍵は、物事の根底を探ることでした。JeffとSanjayはより深部を探ったのです。

3.Googleを巨大にした友情(1/9)関連リンク

1)www.newyorker.com
The Friendship That Made Google Huge