4月 22

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

需要套件:

  • SRB 3.4.x
  • PostgreSQL 7.4/8.2
  • unixODBC 2.2.11
  • psqlodbc 07.03.0200/08.03.0100

Continue reading »

1月 21

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的軟體了。

11月 01

啥是Data Grid,啥又是SRB? 這個問題其實也在我的心中困擾很久,由於我自己差不多到了這個階段,該是時候弄清楚並且真正提出解決問題的方案了。有一個前提必須提醒大家瞭解一個想法,Grid這件東西,我個人認為比起研究或是虛幻的夢想或者要解決100%的問題,實際地解決60~80%的人認為的問題,就能夠有貢獻了。而過去的經驗裡,很多事情都讓我體認到,眾多的計畫裡,提出眾多的想法,僅只能夠被歸類在「研究」,就像我聽許多老師說,「這就是做研究嘛」一樣。實際上一個東西是不是能夠被拿來做量產,終究還是該關心的問題。這並不是否定各位前輩們的辛苦研究精神,在不可能裡尋找可能是很累人的。只是對我個人而言,我希望經研究作為是一個過程,而不是做了三四年都還在研究階段。 很可惜的是,在我這幾年參與的計畫裡,「研究」還是佔了最主要的目的,而並不是「使用」。這是讓我深感SRB就是一個這樣研究型的middleware,許多的設計是在告訴大家「可能」,但並不是為了要拿來使用而設計。卻實在看過一些文獻後,對於SRB在Machanism Abstraction上的貢獻我覺得相當佩服,對於眾多的儲存媒體,要能夠囊括不是一件簡單的事。但仔細思考,究竟Data Grid希望為大家解決啥問題,會發現路更是長遠。光是metadata abstraction或是machanism abstarction,也不見得能夠解決幾個重要的問題。 以下我透過一些問題來帶入Data Grid的需要: Continue reading »

6月 13

前言

Unigrid計畫在今年決定使用SRB,為了補足SRB本來沒有自動複寫檔案的機制,我寫了這個服務。

由於許多因素,暫時不提供套件下載或是原始碼
版本歷史
20060708
初始版本

20060726
修正
會複寫到兩個以上的resource
db.xml不再使用owner屬性,DBConfig.SetPolicy也只需要srbfilepath和policy
config.xml支援多個zone的連線
更快速地跳過不需要進行複寫的檔案
Continue reading »

6月 13
  • 環境

FC3
Oracle 10gR2
SRB 331
Continue reading »

6月 13
  • 環境

SRB-3.2.tar.gz
pgcluster-1.0.9.tar.gz(postgresql 7.3.9)

Continue reading »

6月 13
  • 前言

在2005年中的時候,我發現了MCAT使用Oracle作為DBMS的效能是相當好的。大概看了10.2的功能,管理介面上有很大的改善,Oracle更是自誇說沒有資料庫可以勝過他們。後來實際搭配SRB的效能測試,其實也真的不錯,讓SRB成為一個可以上線的系統,而非在PostgreSQL下有很不穩定的表現。

對於初學者來說要去熟讀Oracle的書籍比較好,或者你可以參考這篇文章,而SRB的操作及簡介可以參考PostgreSQL那一篇
Continue reading »

6月 13

SRB套件:

SRB3.2e.tar

srb3.2.1patch.tar

DBMS套件:

postgresql-7.4.2.tar.gz

unixODBC-2.2.10.tar.gz

psqlodbc-7.2.5.tar.gz

主機:

Redhat Linux(Redhat 8, Redhat 9, Redhat AS 3皆測試過)

測試帳號:

srb.nchc.org.tw:5544 / mcat.nchc.org.tw:5544

srbtest

srbtest

Client Application:

InQ下載頁面

目錄:

前言

準備工作

SRB without MCAT

PostgreSQL and unixODBC Quick Installation Guide

SRB with MCAT

Test

  • 前言

在安裝的過程中,實在歷經千辛萬苦

雖然到了第3版,官方文件卻還是沒有跟著官方測試人員在新版本上的結果而更新,文件的配置潦草隨意

有相當多的堪誤

除了Scommand的設計還算不錯,ClientApp很漂亮也很好用

但Server有些設定及關鍵字的意義難以令人理解,與字面有些與差別

無論如何,我們還是感謝SRB開發人員實現這個想法

但如果是OpenSource,會讓這個想法實現的更完美吧!

可能大部分人都用安裝Oracle解決

Oracle好裝好用,但畢竟不是OpenSource

但是在這裡我用的是PostgreSQL,因為PostgreSQL對於ODBC的支援在幾版前便已經拆開

由非官方的團隊撰寫

ODBC的公用驅動一開始是選擇IODBC,不過似乎對於新版PostgreSQL的相容還是有些許問題

unixODBC有許多好用的設定工具,相容性也完全正常

不過裡面附的PostgreSQL驅動程式,我並沒有使用

MySQL也可能因為Library的關係出現Bus Error,官方沒有任何說明文件

便不在討論範圍內了


Continue reading »

4月 15

由於更換了系統,簡單地做一下安裝註記
之前是在Redhat Enterprise上,採用自行管理的/usr/local/,及/opt目錄結構
現在使用FC6的目錄結構及RPM來管理套件

上一個版本的文章
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-postgresql-guide/

PostgreSQL

使用標準RPM的安裝方式即可
修改/etc/init.d/postgresql
PGDATA=/opt/pgsql

修改postgresql.conf
unmark tcpip_socket,port

pg_hba.conf
host all all {ip} {submask} password

pg_ctl 指令:
pg_ctl -D {data dir}  start|restart|stop|reload

unixODBC

請用yum install unixODBC,如果不用yum裝的話,可能會有版本問題

修改odbc.ini,這裡和原來的設定是一樣的,只不過要確認
Driver=/usr/local/lib/psqlodbc.so

psqlodbc

將/usr/local/lib/psqlodbc.so hard link至libpsqlodbc.so
否則ldconfig會抓不到

將isql.h isqlext.h iodbc.h複製到/usr/include

切記千萬不要匯入odbc.sql

SRB

./configure –enable-psgmcat –enable-psghome=/usr/ –enable-javagui –-enable-jdkhome=$JAVA_HOME

12月 08

看起來今天的演講都很不錯

Reconfigrable Hardware

演講的是印度人,聽說也是花上一些力氣請來的,可是我怎樣也想不懂
為啥會請到一個講硬體的
又因為印度人的口音,所以理論上大家都聽不懂

主要介紹說為了要進行高效能運算,硬體的設計必須針對特定的運算如矩陣,字串比對做最佳化。
但是以現今CPU的架構,因為指令及已經固定,很難再花費這樣複雜的設計去實做這些東西。所以現在就有類似運算加速卡的東西,在超級電腦上,以DSP的角色,或是附加卡的角色,搭配CPU進行運算。而現在這樣的運算加速用DSP,還加上可以即時地去組合在FPGA裡的1bit ALU,來達到最佳化的指令集。

當然這樣的東西一定造價驚人,目前也應該沒有很好的應用及Compiler可以處理。

Tsubame Grid Cluster

http://ganglia.cc.titech.ac.jp/

基本上我認為這個主題根本是日本的國力展示。國高的研究助理與我推算一下,大約是台灣一個Grid計畫預算的40倍以上預算。光電力就要1.2MW,更別說耗掉這樣多電力的硬體是要多少錢。

Tsubame Grid Cluster 在2006/6的時候,以38TFLOPS到達了Top 500的9位,說起來Earth Emluator已經過變成過去式。
http://china5.nikkeibp.co.jp/china/news/news/elec200611160123.html

http://www.gsic.titech.ac.jp/~ccwww/tgc/bm/

http://www.top500.org/list/2006/11/100

後來看一下,國高的電腦,從本來有進top 500到已經不知道掉到哪去…結果現在進榜的是智冠科技

http://www.sciscape.org/news_detail.php?news_id=2082

Integrate P2P and Grid

就我學到的Service Oriented Programming/Contract Based Design,可以想像Grid的大方向。終究Grid是要讓人或程式使用,所以便站在服務的觀點進行很多規劃。但是Grid的實做沒有人不能規定是P2P。

這個結論大家或許心裡都有數,因為Service是一種設計,但沒有可以限定其實做。 也就是說,在Grid內部有關訊息傳遞,資料交換都可以應用。

結論有些實驗數據,還有這計畫作了兩年。