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