副總裁泄玄機:Google搜尋技術揭秘
最後更新:2017-01-13
來源:互聯網
上載者:User
Google將其成功部分地歸功於公司所發明的專屬運算機制,令其搜尋引擎可以在極短時間內對數以百萬計的網路使用者的搜尋請求提供答案。
上周三,Google副總裁Urs Hoelzle在Eclipse會議上的一番發言,令與會者有機會瞭解Google的搜尋技術是如何產生以及該技術現在是如何運作的。
Hoelzle對與會者說,要發明Google的技術,開發人員必須拋棄過去大型資料庫所使用技術的思維定勢。由於一天裡面所有搜尋請求的內容都是不可預計的,因此手頭上就必須擁有100億左右的網頁資料,這是確實是很大的挑戰。
Hoelzle出示了一系列早期Google硬體資料中心的照片。1997年拍的照片中是兩台破舊的台式電腦。1999年,是數台Intel伺服器,機器後面露出一堆亂七八糟的資料線。2000年的資料中心內,擺放的是1000台排列整齊的雙處理器伺服器。
Hoelzle表示,“底層的硬體價格十分低廉,但卻完成了許多工作。”同時,使用如此多的伺服器,可靠性是Google關心的另一重點。Hoelzle表示,“Google使用自動控制的機制進行運作。否則,工程師們需要為重啟伺服器而疲於奔命。”
為了抵抗不可抗力帶來的影響,Google搭建了Google檔案系統,該系統與Google的搜尋運算系統緊密結合,並且對伺服器故障有很高的承受能力。
Google的所有操作均基於一系列的大容量檔案,這些檔案被拆分為64M大小的資料包,分布在多個“資料包伺服器”中。檔案的描述、資料包的數目和資料包的位置等資料都存放在中央伺服器中。每一個64M的資料包都會在另外兩個伺服器上備份,三份拷貝的路徑亦存放在中央伺服器中。
由於所有的檔案都存放在Red Hat Linux伺服器中,Google以很低的成本就保證了服務的可靠性。中央伺服器會定時向資料包伺服器發出脈衝訊號,確定資料包伺服器是否在正常運作。如果沒有收到應答訊號,又或者應答訊號中顯示某台資料包伺服器的資料受到損害,中央伺服器會從其他資料包伺服器上取出資料包修複受損的伺服器。這一工作通常在一分鐘內則可以完成。
Hoelzle指出,只有三台伺服器上的拷貝同時受損,才會對Google的服務有所影響。這時候,就需要用一段長時間去收集互連網的資料以重建受損檔案。
Google會對Web Crawler收集到的網頁進行索引, Web Crawler亦會對這些網頁的作出描述。Hoelzle表示,建立網頁的索引是很艱巨的一項工作,需要數百台電腦運算數天。同時,索引必須經常地更新。