大數據那些事(13):DryadLINQ的興與衰

吾生也有涯,而知也無涯。大數據的這攤子鋪開以後,就顯得越來越大。而進入微軟以後,因為以前微軟吃的官司,但凡微軟內部做什麼系統的部門就不允許去看open-source相對應的東西。做IE瀏覽器的不能看firefox的代碼。做大數據的,我也就不能看Hadoop以及其他相關的代碼。所以越到後面,我的知識就越依賴於對論文的閱讀。而論文的閱讀有其明顯的局限性,那就是眼高手低沒有實踐經驗。大數據系列也寫到了13,我想接下來的系列裡面我會越來的越力不從心的和大家討論技術的細節,很多東西就越發的顯得「高屋建瓴」般的眼高手低。

我們知道大公司都有很多毛病,比如說重複造輪子。微軟作為大公司裡面的典型,自然也是免不了。做Dryad的人和Bing的蜜月期過去以後就撂挑子不幹了,而產品組又必須moving forward。所以這就產生了產品組做的是一個叫SCOPE的東西,但是研究院則搞出了自己的DryadLINQ。

要理解DryadLINQ,我們先要知道LINQ是什麼。LINQ是Language Integrated Query, 一個C#的語言特性,在C#3.5的時候被引入。基本思想是給C#增加了query的能力,使用類似functional programming的編程方式。那些熟悉Scala的人對於LINQ的語法表達一定不會陌生。LINQ支持很多標準的查詢方式,包括SELECT, WHERE,JOIN, AGGREGATE等等。LINQ在C#裡面的實現是一個非常優美的編程模式,現在C#已經開源,所以這方面的code對微軟以外的人也可以看到了。LINQ實現了provider的概念,只要實現一個provider以後那麼LINQ就可以跑在不同的東西上,包括SQL, XML, Arrary等等。

DryadLINQ實際上是一個LINQ的provider的實現。通過對C#實現對LINQ的支持,DryadLINQ可以讓背後的數據跑在一個Dryad的環境下。文章上面的圖大致描述了一個DyradLINQ的體系架構。值得說明的是,DryadLINQ實際上通過對IL(.net虛擬機的語言)層面的分析,可以做很多傳統資料庫上才做的優化,從而可以生成更加有效率的執行方案。其背後的運行環境是一個Dryad平台。

這個產品的產生到推廣在微軟內部經歷了很多的的波折。首先一點來說,微軟大數據最大的客戶是Bing Search。因為有一個叫做Cosmos的存儲和查詢系統。這也是微軟內部Dryad環境下最scalable最為成熟的一個平台。但是因為這樣那樣的原因,跑在上面的語言是SCOPE。所以DryadLINQ也就沒有了市場。

其次DryadLINQ所採取的對C#的整合的方式使得C#成為使用的入口。這個做法在Google裡面有一個非常非常類似的approach,叫做Flume。不是開源的那個Flume。Flume最開始叫FlumeJava,大致上也是把MapReduce之類的東西整到後面去,前面成為簡單的函數調用。後來又發展出了Flume C++。我們可以說在Google裡面這個方式非常的成功,而在微軟卻沒有起來。我想很重要的有兩個原因。第一是微軟畢竟是傳統軟體公司,需要數據分析和處理的地方還是少數。第二是即使用到了數據的分析和處理,其實那些做數據分析處理的人更喜歡寫SQL而不是寫C#。那麼用了DryadLINQ這個方法,強制大家寫C#自然而然的就沒那麼多吸引力了。Google則不同,全員碼農全員需要分析數據,碼農么,寫JAVA寫得酸爽,寫C++寫的牛13,寫SQL寫的就顯得自己傻13了。

但是我們的微軟研究院的人鍥而不捨的一直在努力。終於也讓他們找到了一個地方,就是微軟的HPC--High Performance Computing。這更像現實生活裡面的小公司用hadoop,HPC一般幾十台機器最多百來台機器的一個產品。於是拉了一隻team,把這個東西產品化,做了一個東西叫LINQ to HPC。這個產品一直在測試。然後臨最後一腳的時候被cut了。據說公司上層決定以後走Hadoop路線。既然走了Hadoop路線,那麼就一起MapReduce就好。於是辛辛苦苦的工作了很多年的researcher以及那個team的人都各奔東西去了。當然,伴隨沈向洋上任微軟研究院院長之後發生的裁員,整個微軟矽谷研究院的人都給裁了,做DryadLINQ的Yuan Yu也跑去Google家做Tensorflow去了。

這個產品我用過,給我個人的感覺來說確實是相當的不錯。我用過JAVA開發軟體也用過C#,必須說單純從編程語言的角度來說,C#比JAVA強太多。但是這個世界已經是開源的世界,JAVA的世界,Linux的世界了。Google的神話攜帶Hadoop的MapReduce,估計也亮瞎了微軟領導們的眼。類似的事情不也發生在Facebook么?自己仿造亞馬遜的Dynamo搞了個Cassandra,結果卻自己拋棄了自己的親兒子,上了HBase,據說決定的原因是FB更相信Google的技術構架而不是華盛頓湖對岸那個賣書起家的。然而今時今日在開源社區Cassandra活的不要太滋潤。


推薦閱讀:

如何看待微軟以 262 億美元全現金收購 LinkedIn?
下部手機考慮 Windows Phone,大家有什麼要告訴我的?
如何評價 VSCode 的新 Logo?
國產滑鼠與羅技、微軟、雷蛇相比,缺少什麼?
微軟對 Apple Passbook 私有文件格式 .pkpass 進行逆向工程,這樣合法合規嗎?

TAG:大数据 | 微软Microsoft |