1. 程式人生 > >Google搜索技術揭秘 拋去固有技術思維定勢

Google搜索技術揭秘 拋去固有技術思維定勢

google

  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表示,建立網頁的索引是很艱巨的一項工作,需要數百臺計算機運算數天。同時,索引必須經常地更新。

  為了高速地對索引進行檢索,Google將其分成許多稱為“碎片”的小塊,分布在不同的服務器中,以便進行並行搜索。每一臺服務器都搜索出一部分結果,然後再整合在一起成為完整的答案。

  Hoelzle表示,Google的文件系統、索引技術及商用服務器的網格令每一次搜索的平均時間四分之一秒。而文件系統的定時脈沖信號機制,則給予Google很高的可靠性和可用性。

  同時,當Google的服務器分析搜索請求的時候,會將該搜索請求拆分,然後再從數據庫中找出令大部分用戶滿意的結果,這一過程稱為“map reduction”。Hoelzle表示,“Google曾經在一次大型維護意外事故中失去了2000臺map reduction服務器中的1800臺。”但由於系統的負載均衡機制,將未完成的搜索任務合理分配,Google仍然能完成所有的搜索請求。

  Hoelzle指出,“這一機制使我們能很快從故障中復原,並不影響我們的服務。”


本文出自 “11903871” 博客,請務必保留此出處http://11913871.blog.51cto.com/11903871/1975997

Google搜索技術揭秘 拋去固有技術思維定勢