2010年3月,ACM宣佈將2009年度“ACM-Infosys”獎頒發給加州大學伯克利分校的Eric Brewer教授,以表彰他在可擴充套件網際網路等領域所做的貢獻。Brewer在伯克利獲得了電腦科學學士學位,隨後在麻省理工學院獲得電腦科學碩士和博士學位。32歲時,他拿到了伯克利的終身教授職位,這個職位是很多人的畢生夢想,而他卻初出江湖就將其納入囊中。這到底是個什麼人?他到底做了什麼事?
要說Brewer教授的工作,我們要從80年前的另一個人說起。1930年,著名數學家希爾伯特發表了他著名的退休演講,其中有一句話鼓舞了一代數學家:“我們必須知道,我們必將知道。”這句話所指的,是他的“希爾伯特計劃”,也就是證明數學體系的完備性、相容性和可判定性。數學家們為這美好的未來而不懈奮鬥,然而這場美夢卻被一個人打破了。1931年,哥德爾證明了,任何完備的系統都是不相容的,而任何相容的系統都是不完備的,二者不可得兼,這就是哥德爾定理。這個證明徹底摧毀了希爾伯特計劃,使數學變成了一個殘缺的世界。說到這裡,不妨說一點題外話,希爾伯特提出的三個問題,哥德爾解決了前兩個。那麼剩下一個“可判定性”呢?這個問題是由艾倫·圖靈在1936年的論文中首次解決的,也正是在這篇論文中,他提出了圖靈機,後來成為現代計算機的理論模型。
讀者也許要說,這80年前的事情,跟年輕的Brewer有什麼關係啊?別急,馬上我們就將看到,Brewer有著一個幾乎同構的故事,他儼然就是分散式計算領域的哥德爾。對於一個分散式計算服務來說,有個CAP原理,包含三個最重要的屬性:相容性(Consistency),讀操作是否總能讀到前一個寫操作的結果,即是說在分散式環境中,多點讀出的資料是否相容。可用性(Availability),訪問資料的效能。分割槽容忍性(Partition tolerance ),資料的分割槽特性,對系統效能的影響程度。
對於一個分散式計算系統來說,這三個屬性非常重要。因此,電腦科學家們一直在拼盡全力地尋找一種方法,能夠實現同時滿足CAP三者的完美分散式系統。但是就在大家都忙得熱火朝天的時候,2007年,如同當年的哥德爾一樣,Brewer教授站出來指出:CAP永遠不可能同時滿足,提高其中任意兩者的同時,必然要犧牲第三者。這就是Brewer的CAP定理,後來由麻省理工學院的兩位科學家證明。這個定理告訴大家,不要再浪費時間去研究如何兼顧了,因為這根本就是不可能的,只能根據具體應用,來決定如何在三者之間進行取捨。CAP理論為很多巨型的資料中心,尤其是現在很多的SNS網站提供了有力的理論指導,比如說Google的BigTable系統就是一個犧牲了A的典型例子。有意思的是,Brewe今年5月在Twitter上透露,他利用學術休假的時間已經開始在Google公司領導下一代基礎設施的設計了。就在提出CAP理論的同一年,Brewer當選美國國家工程院院士,並於次年當選ACM Fellow。
除CAP定理外,Brewer還有很多其他成就。1995年,他與人共同建立了著名搜尋引擎公司Inktomi,曾是納斯達克100指數成分股,後來被Yahoo!收購。2000年,他協助美國聯邦政府做網站,建立了usa.gov並上線。他還非常關心發展中國家和貧困國家的資訊化程式,提出了 WiLDNet等很多概念,旨在通過技術方法,幫助人們以更低的成本獲得無線通訊能力。他的系統被部署用於印度的遠端醫療,有超過20000名眼科患者通過該系統重新獲得光明。
原文:程式設計師