{時間:2003年3月4日}
{地點:加州-帕洛阿爾託}
無論哪個時候謙虛總是好的,但是過於謙虛有時候難免給人誤會。所以面對Kaltix三人組,寧子默並不謙虛。
Kaltix三人組說掌握的技術,確實是針對峰語的PageRank去做的提升。但Bing同樣在網頁頁面權重方面有自己的專用算法,搜索引擎本質上的共性讓Kaltix技術的融入並不存在問題。
問題在於,如何將Kaltix三人組納入旗下。這可不是簡單地把Kaltix三人組挖過來那麼簡單,而是對峰語和Bing相對此消彼長的“騷操作”。
既然是此消彼長,寧子默不介意亮亮肌肉。
用迅雷不及掩耳之勢,拿下三人!
於是,這一番大數據搜索的延伸場景擺在2003年這個時代,已經不足以用驚豔來形容。
包括霍夫曼在內,辦公室裡呆着的四人一幅“懵逼”的樣子盯着寧子默,讓寧子默一時間有種“說過了”的感覺。
確實,剛剛講的東西對眼前的四人而言。
太超前了!
他們的理解,
或許還跟不上。
沒想到賽普突然張了張嘴,小心翼翼地說,“寧,我們三人曾就峰語搜索引擎討論過搜索引擎技術的發展。本以爲我們的展望已經十分超前,沒想到你鋪開在我們面前的那副畫卷完全超越過我們曾經的想象。”
眼前這位叫做寧的年輕人,不僅僅是大名鼎鼎的倍寶COO,竟然還是【領贏】和【MySpace】的聯合創始人。
他已經在過去的數個項目中展現了他的創造力,卻沒想到他在搜索引擎這麼專業的領域竟然有着超越這個時代的獨到見解。
他關注的不僅僅是技術,更是科技,或者說互聯網技術在人類文明未來的發展中所起到的關鍵作用。
如果說以前很多人問自己-搜索引擎可以幹什麼,自己的回答最多會比寧給出的答案更好一些:
“搜索引擎可以幫你更快速找到更專業、更詳盡的答案。”
但是今天過後,賽普覺得他或許會給問出問題的人一個更好的答案。
或者說,今天過後,他突然給不出別人一個答案。
搜索引擎可以做什麼?
寧已經講得清清楚楚,
但那個未來,
離現在確實還很遠。
想到這裡,賽普鼓起勇氣問到,“寧,你說描繪的畫卷絕對是搜索引擎未來最值得去探索的發展方向。”
抱歉地點了點頭,賽普訕笑着說,“並不是說我不看好你所說的未來,而是我意識到你所說的那個未來,離我們有些遠。它一定會用到大量的新技術去實現,而那些技術並不是一個簡簡單單的團隊可以完成的。
甚至就連目前在搜索引擎領域十分領先的峰語,就算它有足夠的技術積累,也不能在短期內達成你所說的那個未來。單單如何將網頁文件串聯成數據,並以數據庫查詢的方式來實現搜索,都是個目前短期內難功課的難點。”
“夢想總是要有的,要不然怎麼去一步一步實現它?”
寧子默把有關夢想的話變了個說話,就在賽普表態的同時,他已經想到了更深層次的東西。
寧子默明白,有一些人,僅僅只靠畫餅是不能完全說服的。
自己必須拿出完全體來對付這幫同樣有夢想的年輕人!
寧子默自信地笑笑,乘着抿一口咖啡的時間在腦子裡將峰語搜索的關鍵技術彙集成冊。
把杯子從嘴邊拿開的時候,寧子默腦子裡有關峰語搜索關鍵技術的封印,
已然打開!
“說到搜索,人們往往會簡單地認爲搜索只是抓取爬蟲從網絡上抓取的結果。但實際上,搜索並沒有人們想象的那麼簡單。”
寧子默將杯子輕輕地放在桌上,笑着掃了三人一眼,細細地解釋到:
“我們談到大數據搜索,其核心一定是體量極大的數據量。這種體量的數據存儲、索引和檢索,已經不單單是數據庫結構能去實現並解決的。
大數據量的數據存儲和搜索一定要有對應的文件存儲檢索系統,它必定是一個面向大規模數據密集型應用的、可伸縮的分佈式文件系統。
我們【Bing】除了在搜索和爬蟲上用心外,最核心的部分還是背後那套圍繞在BFS(Bing File System)文件系統的核心技術體。這套系統的設計目標,與許多傳統的分佈式文件系統有很多相同之處。比如,性能、可伸縮性、可靠性以及可用性。
但BFS的還是以應用負載情況和技術環境的分析爲基礎着重考慮,不管現在還是將來,BFS和早期的分佈式文件系統的設想都有明顯的不同。所以我們重新審視了傳統文件系統在設計上的折衷選擇,衍生出了完全不同的設計思路。
首先,組件失效被認爲是常態而不是意外。BFS需要管理成百上千存儲機器,同時被相當數量的用戶終端機訪問。BFS組件的數量和質量導致在事實上,任何給定時間內都有可能發生某些組件無法工作,某些組件無法從它們目前的失效狀態中恢復。
當我們遇到過各種各樣的問題,比如應用程序bug、操作系統的bug、人爲失誤,甚至還有硬盤、內存、連接器、網絡以及電源失效等造成的問題。所以,持續的監控、錯誤偵測、災難冗餘以及自動恢復的機制必須集成在GFS中。
其次,以通常的標準衡量,我們的文件非常巨大。數GB文件都可能非常普遍。每個文件通常都包含許多應用程序對象,比如web文檔。
當我們未來需要處理快速增長並由數億個對象構成的、數以TB的數據集時,採用管理數億個KB大小的小文件的方式是非常不明智的,儘管有些文件系統支持這樣的管理方式。因此,設計的假設條件和參數,比如I/O操作和Block的尺寸都需要重新考慮。
第三,絕大部分文件的修改是採用在文件尾部追加數據,而不是覆蓋原有數據的方式。對文件的隨機寫入操作在實際中幾乎不存在。一旦寫完之後,對文件的操作就只有讀,而且通常是按順序讀。
大量的數據符合這些特性,比如:數據分析程序掃描的超大的數據集;正在運行的應用程序生成的連續的數據流;存檔的數據;由一臺機器生成、另外一臺機器處理的中間數據,這些中間數據的處理可能是同時進行的、也可能是後續才處理的。
對於這種針對海量文件的訪問模式,客戶端對數據塊緩存是沒有意義的,數據的追加操作是性能優化和原子性保證的主要考量因素。
第四,應用程序和文件系統API的協同設計提高了整個系統的靈活性。比如,我們放鬆了對BFS一致性模型的要求,這樣就減輕了文件系統對應用程序的苛刻要求,大大簡化了BFS的設計。
BFS還引入了原子性的記錄追加操作,從而保證多個客戶端能夠同時進行追加操作,不需要額外的同步操作來保證數據的一致性。”
端起咖啡又喝了一口,寧子默已經習慣了身邊這四人目瞪狗呆的狀態。
放下杯子,寧子默再也懶得去解釋那些技術細節,但還是提點到:
“BFS一早就規劃了四大核心技術體,其中涵蓋了第一個部分的分佈式基礎設施,包含的模塊有文件系統(File),分佈式鎖服務(Chubby)和數據化序列協議(Protocol Buffer)。
而第二部分是分佈式大規模數據處理模塊,其中包含分佈式運算程序的編程框架和對應的數據查詢語言。他們或許和SQL和類似,但實際上它應該被稱之爲DSL(Domain-Specific Language)。
第三部分則是分佈式數據庫技術,它包含的模塊就有分佈式數據存儲系統(BigTable)和數據庫分區系統(Sharding)。
最後一部分當然包含數據中心優化技術,這些技術中包括綜合考慮的數據中心高溫化,還有電池與服務器相應整合技術等。”
撇了撇嘴,寧子默皺着眉頭說,“搜索引擎是一個全盤技術的考慮,但我僅僅只舉了一個很簡單的例子,並且其應用範圍還只是在網頁搜索結果當中,並沒有提及一整個生態的整體考慮。
但我所說技術方面的內容,遠比我現在講給你們聽的內容要複雜的多。每一個單項裡都會包含大量工作人員相應的工作成果,確實不是短期內可以去實現的。
但好在我們【Bing】團隊的目標明確啊。”
“夢想還是要有的,萬一實現了呢?”寧子默撇着嘴挑了挑眉毛。
這個輕挑的動作,在Kaltix三人組的眼裡卻鄭重如斯。
辦公室裡鴉雀無聲,除了必要的眨眼,好半天都沒有一個人有多餘的動作。
大概是忍受不住這種沉重的氣氛,霍夫曼趕忙站起身來,去門口招呼人幫忙添上幾杯咖啡。
霍夫曼也算看出來了,寧子默今天多少都帶點“火氣”,所以平日裡一沾即過的風格變得凌厲無比。接連的前瞻和技術開誠佈公地公示出來,定然讓他斯坦福大學的三位學弟有些承接不住。
待人送來新的咖啡,霍夫曼才趕忙招呼道,“來,先喝點東西消化消化。寧原來在倍寶帶團隊的時候就是這樣的風格,每一次他有一個新的方向時,總是向着那個方向勇往直前。
這麼兩年來,我從未見他失敗過。但爲什麼不會失敗,相信你們剛剛也都看到了。那是因爲他在每一個細節的把控方面都已經做到了極致,這纔有我們步步爲營的每一次勝利。”
賽普明顯是三人裡邊拿主意的那一位,霍夫曼話音剛落,賽普就點了點頭。
雖然一直都是那位年輕的寧在說話,但是賽普總是覺得自己的嗓子有些癢。
咳嗽一聲看了看身邊的同伴,見他們都輕輕地點了點頭,賽普清了清嗓子說到,“寧,我們已經清楚地看到你描繪的未來,也如同霍夫曼學長說的那樣,明白你在計劃的每一個細節都十分重視。
我想,經過你這一番講述後,我們就只剩下一個問題。那就是,如果我們加入【Bing】,那麼在前期這段時間,我們能爲【Bing】做些什麼?”
成了!
沒有多餘的感嘆。
寧子默在做之前就篤定會是這樣的結果,降維打擊不僅僅是讓人屈服,其實還可以是用能力去征服別人。
要不然人馬星的艦隊開到地球的時候,爲什麼總有人類想要成爲三體人呢?
當然,賽普他們並不是這樣的心思,而是他們被自己說的有些找不到自己的方向了。
既然別人都已經願意加入團隊,寧子默的態度自然溫和不少:
“對於整個Bing來講,從啞虎搜索引擎部門跳槽而來的陸奇先生有足夠的能力去掌控大局。但在細枝末節方面,我們需要足夠多的專家來實現技術。
和峰語一樣,Bing也有自己的PageRank算法。但目前搜索引擎的優化方面,我們需要專家。這就是我讓霍夫曼幫我物色人選的主要目的,而你們就是霍夫曼爲我們【Bing】物色的技術專家。所以,我想要聽聽你們在搜索領域有哪些特長。”
儘管知道Kaltix的技術核心是一套包含三個技術的算法,就算知道這三個技術是二次外推,BlockRank和自適應PageRank。寧子默依舊要做出足夠的姿態。
賽普點了點頭,笑着說,“好的,寧,那麼由我來向你詳細的介紹一下我們的Kaltix。”
搜索引擎並不是寧子墨擅長的範圍,但前世對峰語的崇拜驅使寧子默對峰語的技術有過相當的研究,這些積累的搜索知識讓寧子默在和賽普的溝通中並不吃力。
Kaltix是賽普三人基於峰語核心Page Rank技術的新興搜索排序技術,它基於個人興趣的搜索結果排序方式,可以講搜索引擎速度提升到原有速度的五倍。
它有三項核心技術……
就算知道這些,寧子默細細聽完就覺得自己淡定不起來了。
也難怪前世裡的峰語在2004年會有飛速的發展,完全是因爲收購併消化了Kaltix的核心技術,而Kaltix對峰語搜索的提升是顯而易見的。
賽普的講解,讓寧子默覺得自己撿到寶了,不由地誇讚到,“你們的技術核心思想是基於用戶體驗的搜索排序方式,這與我重視旗下產品的“交互體驗”幾乎是一樣的要求。你們技術的核心其實也是‘交互體驗’,不僅是技術的提升更是站在用戶角度的‘交互體驗’的提升。
這樣的技術應用非常有理由客戶的便捷實用,從此搜索不再是機器式的反饋結果,而是個性化的反饋用戶的真正需求。你們做了一件了不起的事情。”
“那你覺得,以我們的能力和技術,我們是否可以加入【Bing】呢?”
看着賽普天真地望着自己,寧子默突然很想笑。
無論如何,這句話都昭示着一個結果。
自己又一次坑了峰語,
Kaltix小組歸心了!