在過去的12個月,Google的員工數(shù)目增加了一倍,并完善了自己的搜索引擎來提高搜索的速度,而且現(xiàn)在響應的查詢超過了Microsoft和Yahoo的總和.但有一個查詢我們必須要自己回答:Google是怎樣工作的。
都是拼寫檢查的錯.十年以前的這個九月,故事就是這樣發(fā)生的.一些斯坦福畢業(yè)生幫助 Larry Page為他的搜索引擎選名字."Googolplex(巨大的數(shù)字),"Sean -Anderson說.(他們已經(jīng)察覺到這玩意能變得多大.)"Googol","Page回應.Anderson在檢查這個名字是否被使用的時候,把 g-o-o-g-l-e輸入了他的瀏覽器并犯了自p-o-t-a-t-o-e[1]以來最有名的拼寫錯誤.Page在幾個小時內(nèi)注冊了這個名字,而今天,Google不再是打字錯誤,它已經(jīng)成為一個動詞,一個有著$160,000,000的市場的動詞.
下面是一個導引,來看看在一個常規(guī)搜索的過程中所發(fā)生的一切--當然,有用自動的拼寫檢查.
1.查詢框
故事由某人敲入對某種信息的查詢開始,比如說最安全的狗糧,交管局什么時候停業(yè),或者中國的優(yōu)惠利率是多少.
2.DNS
"Hello,這里是接線員..."
Google的域名服務器運行在全世界Google租用的或者是公司所有的數(shù)據(jù)中心上,包括一個位于曼哈頓港務局的總部.它們唯一的任務就是盡可能高效的把搜索請求引導到一個Google集群,其中會考慮到哪個集群離搜索者最近以及當時哪個最空閑.
3.集群
搜索請求接下來來到至少兩百個集群中的一個.這些集群在Google在全世界擁有的數(shù)據(jù)中心里.
4.Google網(wǎng)頁服務器
這個程序把一個搜索請求分散到幾百或上千的機器上以讓它們能同時工作.這跟獨自一人在食品店購物和讓100人同時找一件物品并扔進你的購物車的差異是一個意思.
5.索引服務器
Google所知道的東西都被保存在一個很大的數(shù)據(jù)庫里.但與其等一臺電腦篩選那么多G的數(shù)據(jù),Google讓幾百臺電腦同時掃描它的"卡片目錄"來尋找任何相關的條目熱門的搜索條目被緩存起來--保存在內(nèi)存里--幾個小時而不是再次從頭執(zhí)行.布蘭妮,就像你一樣.
6.文檔服務器
在索引服務器生成了它的結(jié)果以后,文檔服務器把所有相關的文檔(包括鏈接和文章片斷)從那個很大很大的數(shù)據(jù)庫中拉出來.Google做了什么讓搜索Web變得這么迅速?其實它沒有.它保存有互聯(lián)網(wǎng)上(被保存在它文檔中心的)所有信息的三份拷貝, 而所有這些數(shù)據(jù)都已經(jīng)被整理好了的.
7.拼寫服務器
Google不懂閱讀語句;它會查找字詞的模式,可以是英語的也可以是梵語的.如果它根據(jù)你的搜索請求的模式得到1,000個結(jié)果但卻找到一百萬個由一個類似模式得到的結(jié)果,那它將把那些點連接起來并禮貌的詢問你是否原本想要查詢這些詞語,甚至當它已經(jīng)提供結(jié)果的時候也會發(fā)生.比如你的肥胖的手指輸入"hwedge funds"[2]的時候.
8.廣告服務器
任何搜索查詢同時也會通過一個廣告數(shù)據(jù)庫,之后匹配的結(jié)果將會提供給Web服務器,來把這些廣告放在結(jié)果頁上.廣告團隊其實在和搜索團隊賽跑.Google發(fā)誓讓所有的搜索都能盡快的執(zhí)行;所以如果廣告結(jié)果需要比搜索結(jié)果更長的時間來生成,那么這些廣告就不會被放到結(jié)果頁上--Google也就沒法從那次搜索中賺錢.
9.頁面生成器
Google網(wǎng)頁服務器把幾千條為這次搜索查詢生成的結(jié)果收集起來,整理組織所有的數(shù)據(jù),然后把Google簡潔可愛的結(jié)果頁展示在你的瀏覽器窗口里,所有的一切都發(fā)生在比看著條句子短的時間內(nèi).
10.搜索結(jié)果顯示完畢
一般在0.25妙,或者更短.
集群控制
Google的天才體現(xiàn)在它的網(wǎng)絡軟件上,這軟件幫助幾千臺便宜的電腦在一個集群內(nèi)能像一個超大的硬盤工作.那些不貴的電腦讓Google不用把停止整個表演就能替換部件:如果一臺電腦罷工,只要有一個工程師弄走那臺壞掉的機器,旁邊就有至少兩臺電腦能去頂替它的位子.
電力
制約Google性能的東西只有一個,那就是這家公司能買多少電.位于達拉斯 Columbia River附近的最近建造新數(shù)據(jù)中心Oregon已經(jīng)用掉了18億瓦的水電;不巧的是,這里是亞洲與美國的網(wǎng)絡的連接處.這家生產(chǎn)字節(jié)的工廠有兩個運算中心,每一個都有一個足球場那么大.
容量(Petabytes)
基于一些Google發(fā)布的數(shù)據(jù),專家們猜測至少20P(譯者注:兩萬萬億)[3]字節(jié)的數(shù)據(jù)被存儲在它的服務器里.但是Googleytes就是以不公開而聞名;《連線》雜志說Google可能有200P的容量.那么那到底是多少?如果你的 iPod能有1P(一百萬G)那么大,那你將能播放兩億首歌.而如果你從現(xiàn)在開始通過你的高速網(wǎng)絡連接下載1P的數(shù)據(jù),那么你的曾曾曾曾孫可能還在那守著,到那時候最后一點字節(jié)還在傳輸,在2514年.
Page Rank
Google決定一個網(wǎng)站有多可靠--還有在Google生成搜索結(jié)果列表的時候,這個網(wǎng)站的內(nèi)容有多重要--這需要考慮超過兩百個因素,就跟它分析內(nèi)容的時候一樣.但秘密在于Google的專利公式.這個公式是通過頁面上所有的鏈接來使 Google了解被連接站點的不同之處.這也意味著一個網(wǎng)站的可信度很大程度上是根據(jù)連接到這個網(wǎng)站的站點的質(zhì)量.
Google機器人
Google使用叫蜘蛛的程序來生成互聯(lián)網(wǎng)的拷貝.在熱門站點,Google機器人在一個小時內(nèi)可能沿所有的連接爬行幾次.當它們通過頁面時,爬蟲保存文本或代碼的每一個字節(jié).這些原始數(shù)據(jù)被拉回集群,通過磨坊,然后按計劃漸進的替換原本保存在索引和文檔服務器中的舊數(shù)據(jù),來保證結(jié)果是新鮮的,而不會變?yōu)榛?
[1]1992年6月15日,作為前副總統(tǒng)的Dan Quayle在一個小學的活動中,把12歲孩子William Figueroa原本正確的拼寫potato加上e而出丑.詳細情況
[2]在鍵盤上e與w相鄰.如果手指太粗就可能同時按下.(汗...)
[3]1P=1,000,000,000,000,000,一百萬G