2008年9月20日 星期六

雲端運算、格網運算與P2P運算

在6月的Google Developer's Day活動前後,媒體報導了有關雲端運算的事情。有些也冠上了滿誇大的標題,說雲端運算是Google的武器...或是IT的明日之星...等等的。但其實這也和「Web2.0」這個名詞的出現一樣,多半有廠商在後面的推廣,舊酒新瓶裝。但實際上,各位也是從以前到現在就都在「雲」上,只是Google將自己的三個核心技術,與網路的使用者們,一起包裝成新的名詞叫做雲端運算。

9月10號凌晨3點的時候,CERN的大型強子對撞機(LHC)投入了第一個質子束,一個月後就要進行第一次對撞。LHC一年能夠產生15PB(15,000,000GB)的資料量,如果以一張DVD9來算的話,那就是166萬張了。但要怎樣能夠將這些偵測器得到的原始資料進行龐大的運算?這個時候就要靠著分散式運算來得到結果。而其中一種分散式運算的技術,我們稱做格網計算。

我希望透過這篇文章,讓大家了解電腦的運算歷史,以及未來每個人手上的電腦,又會被放在世界的哪裡。

2008年9月12日 星期五

慘啊

冷氣壞掉...拖了好一陣子

不過最近剛好也都處理的差不多了,也升級到WP新版了...

2008年6月16日 星期一

一星期的Google Developer Day



說真的這幾天實在是令人覺得驚奇

打從聽到Jeff發現我的作品也被選上,到公關公司打電話來
星期三過去看見73樓這些令我讚嘆的景色
直到記者會...直到星期六上台這10分鐘
總覺得好像在夢境中

不管怎樣,還是很給感謝Google給我這個機會展示
儘管還有許多功能還要加強,而且ok17go整合apps engine也已經是勢在必行了
我想接下來我有一些重要的任務就是,趕緊多帶一些學弟們一起開發
不然使用者們想要的功能就要等很久了

星期三基本上是去談一些初步的方向,例如說當天該怎樣簡報,也認識到了Caroline,Josie,Jessica,Andy等人。大家一下子就聊開了,其中Jessica一直讓我覺得很像我一個國中同學,大家都叫他奧莉薇XD。Caroline很招待我們,各塞給我們一個冰淇淋,還有一堆零食帶回家。文化是的確不同,但還是有點不好意思。

其實我心裡一直覺得能夠在73樓看風景,就已經不枉此行了吧。

2008年5月24日 星期六

商業服務的PostgreSQL Database Cluster



(本文圖片皆引用自PGCluster官方網站,http://pgcluster.projects.postgresql.org)

我在商業服務的Ruby on Rails HTTP Cluster觀念及測試中的第一張圖的前面那一段有提到說,DB的情況有點像是如此,不過實際上情況有點不同。因為有網友的疑問,如今我認為該是時候補完一下。

應用系統如果要能夠真正地服務大量的使用者,與常見裝個MySQL然後跑個PHP論壇程式,是完全的兩回事。因此一個良好的資料庫管理員,必須清楚地知道自己的應用程式與資料庫在單台機器上執行的時候,效能的瓶頸在哪裡。如果不清楚應用程式及資料庫各佔的資源比例,那在切割成叢集的時候,並不見得有 顯著的效能提升,因為負載平衡以及複寫管理的程式都會吃CPU。認為1+1就極有可能等於2,這個是一般的管理員錯誤的認知。

舉例來說,許多大型的論壇,擁有上萬使用者,每天流量破10G;這樣的論壇,有些時候一開始因為資金及管理人力的限制,會考慮只買一台效能相當好的伺服器(例如HP ProLiant 380 G5),並且將Apache+PHP(應用程式)與MySQL(DBMS)擺在同一台主機上。管理員會想說反正這台效能高,一方面省下買另一台伺服器的錢,一方面PHP程式不用透過網路與MySQL連線,理論上應該效能很好。卻沒有考慮到,一般的論壇Web應用程式是以CPU及RAM需要量大的應用,而DBMS是一種I/O裝置(RAM+Disk)需要量大的應用。這是由於,大多數的管理員會誤以為DBMS僅吃CPU與RAM。負載低的時候看起來沒什麼,一旦人數增多,表示應用程式的部分記憶體就會越吃越多。系統用來快取的記憶體不足,很快地瓶頸就會出現在記憶體及硬碟之間,造成資料庫效能低落。這個代價比使用兩台機器跨網路線這樣的部署方式要來的大太多。



2008年4月22日 星期二

SRB 3.4.x with CentOS 5

每次換了個平台都會忘記幾個小步驟,而導致很麻煩的後果
這次我做點詳細的紀錄

需要套件:

  • SRB 3.4.x

  • PostgreSQL 7.4/8.2

  • unixODBC 2.2.11

  • psqlodbc 07.03.0200/08.03.0100
    修正08.版的psqlodbc並沒有三個需要的.h檔,請不要下載這版本



2008年4月11日 星期五

虛擬化技術的現況



虛擬機器(Virtual Machine, VM),用比較白話的方式講,就是「模擬器」。
利用現行的硬體,撰寫系統,模擬另一套系統的整體結構,包括硬體,甚至韌體,就是虛擬機器。

虛擬機器大致上可以分兩種,一種是模擬整個硬體系統,執行環境,我們稱做「虛擬系統」,如最有名的VMWare系列,便是一種用來虛擬IBM x86 PC架構電腦的虛擬機器。另一種稱做「虛擬行程」是利用軟體中介層的方式,模擬出一套執行環境,例如Java的執行環境Java Runtime,就是使用Java Virtual Machine (JVM)作為其執行環境。

本篇文章主要介紹虛擬化技術,及兩個最常見的虛擬化平台,VMWare及Xen。

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書籤摘要