2008年1月21日 星期一

MapReduce是開技術倒車?

http://glinden.blogspot.com/2008/01/mapreduce-step-backwards.html

http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html


MapReduce是開技術倒車?實際上這像是當初SQL推出的時候,很多人也認為以語言來描述資料的處理是多餘的事情一樣。而ORM盛行的時候,也有人質疑SQL已經很直觀了,為啥又要轉成物件。

"Ronn Brashear said:
...
A good engineer understands the specific problem space, examines the potential solutions, and picks the right tool for the job. "

所以說,Vertica DB發表這一篇也只是商業競爭而已,其實他們並不如Google能夠理解Column-based DBMS的好處,並經其原理應用在BigTable上,其中一個回應也說的對,根據paper裡所說的結構,BigTable是有index(還有vertica做不到的timestamp based query)。這些教授對RDBMS很熟,可是卻完全不瞭解parallel data processing是怎樣回事,因此誤用,並拿來對照。

當然我在上次的書報討論中,也將這幾個paradigm拿來比,是不太對的。不過當然就是想說先讓同學們瞭解一下觀念。

不管怎樣,在此重新釐清一次觀念。

Google File System(GFS)是一種Global File System,目的是以出力(throughput)為主,並不具備任何的檔案分割能力。他與Redhat推出的GFS功能上相似,但實測的檔案大小及效能差異極為懸殊。GFS本身不具備任何的DLM(Distributed Lock Manager)機制,而是以另一套服務稱為Chubby來提供,這也是跟Redhat GFS不同。簡單地說,把他想像能夠高速傳輸上10TB大小檔案的NFS即可。

MapRedurce是一個parallel data processing framework,根據程式設計師撰寫的Mapper/Reducer Function,搭配合併於framework內的checkpoint技術,而進行平行化的資料分析及處理。首先利用GFS的特性,使得大容量(如上述的10TB)並且為單一檔案的資料,能夠分散在適當的節點群組裡。接著Framework的主程序就會自動地散佈開發好的程式,進行呼叫Map,Reduce兩個函式,最後將結果寫回GFS去。也就是說,就某種角度,他比較像Condor,而跟資料庫一點都扯不上關係。至於說他是不是能夠用在Computation上,paper的說法是「有機會」,但我認為除非你將問題切割成資料處理,不然是很難有機會的。

BigTable是一個利用上述Framework所撰寫成的巨大資料集儲存系統,這裡指的是「資料集」,而表示這些資料彼此之間可能不具有任何的「關連」。因此將關連式資料庫能夠有的功能如transcation,拿來比較是不合適的。換句話說,你應該不會經常拿許多份Excel,將其內容合併(join)後才取出資料(select)進行你的工作(真的已經這樣就會去用DB而不是excel了),而你也不會將資料庫系統裡就建一個表格,然後把所有欄位都放在同一個資料表裡(坦白說我還是有看過人這樣做@@|||)。BigTable如其名,就是一個巨大的表格,就像Excel一樣,而並不是DBMS。儘管在paper裡也提過他擁有一些與DBMS相同的功能,不過這也不代表他是被定義為DBMS。更何況,在這樣大的系統內,要堅持使用特定的觀念去解決事情是一件很不合理的事。

看完了,大部分人可能也還是無法從定義去對應到腦袋裡可以想像的模樣,而不免心裡會有疑問,這些東西搭在一起又能幹嘛?就未來來說,我們有機會擁有下一代平行資料庫的雛形,也有可能就真的只是一輩子被用在Google的應用服務中了。但就現階段而言,請不要忘記這世界上已經有多少人無時無刻地在使用Google的軟體了。

九型人格分析







































第三型成就者、事業型、成就型、實踐型

15%


第七型快樂主義型、豐富型、活躍型、創造可能者、享樂型

15%


第二型助人者、全愛型、助人型、成就他人者、博愛型

12%


第八型領袖型、能力型、挑戰者、保護者、權威型

12%


第九型和平型、和平者、和諧型、維持和諧者

12%


第一型完美主義者、完美型、改革者、改進型、秩序大使

11%


第四型藝術型、浪漫者、自我型、憑感覺者

10%


第六型忠誠型、忠誠型、尋找安全者、謹慎型

6%


第五型智慧型、觀察者、思想型、理性分析者、思考型

6%



我的九型人格分析?

2008年1月14日 星期一

程式設計的「德、智、體、群、美」

近來實做過幾個看起來很難成功的專案後,我深深感到
在台灣賣「程式技術」是一點用也沒有的

台灣有多少人會寫程式,現在大學各個系都開始冠上「資訊」
程式語言的門檻越來越低,從php到ruby的發展及差異清晰可見
程式設計師們個個只要稍加訓練,一定都具備相當的能力能夠「寫」出成果來
然而,這些成果是什麼?些成果「該」是什麼?一個能賣的產品嗎?
這些問題總是也沒人去探討。
以往台灣的軟體產業,公司需要的多半還是Coding Machine,也就是「工程師」
資深的工程師或需求人員「想出」設計,搭配美工或是資料庫設計,然後由年輕的工程師們變出來
卻沒有多少人注意到這個產業慢慢需要的不是機器,而是完善的設計流程,及腦袋清楚,身體健康的開發人員
我相信,程式設計有所謂「五育」
台灣的軟體人員,似乎總是有點五育不全

[2007/08/19 - 2008/01/14] Hemidemi書籤摘要