== '''''Working Progress''''' == * 兩人小組會議:敲定每天討論半小時至一小時(成員:sunny and chwhs) * 2008/03/18 * 要在wiki補上"How it works" * 要安裝"Hypertables"在自己的測試主機上 * 安裝過程遇到檔案"not found"可以先參考此網頁[http://lxr.linux.no/linux/]再google一下 * 安裝後可以進行簡易測試 * 準備閱讀"Bigtable: A Distributed Storage System for Structured Data"這篇paper[http://209.85.163.132/papers/bigtable-osdi06.pdf] * 有空可以看一下"果蠅腦"相關的文件,及模擬資料方面的做法 * 2008/03/20 * 聽sunny 試報Hypertable Architecture,了解較粗略的Hypertable觀念 * 在自己本機上TEST * 要執行Hypertable回歸測試 * 要建構Hypertable文件樹 * 要測試HQL指令 * 這段日期 * 處理CA * 2008/04/10 * 要弄懂且修改Apache Log Query的程式 * 試用Ultimate++ * Hypertable範例測試 * 2008/05/05 * 應盡事宜 * 熟悉Hypertable與HBase,不僅要會應用並做效能比較 * 小知識survey * Object Database vs. 傳統的RDBMs * key/value storage 有名的代表(如:SQLite)有什麼應用 * 2008/05/06 * Object Database vs. 傳統的RDBMs * 傳統的資料庫在資料處理的應用上,概念上僅僅使用較為簡單且較少的資料型態。所以相對地,較少的資料型態只需要經過第一次正規化即可。 * 而在近幾年,複雜的資料型態已經發展的越來越重要了。 * 如:一個地址可以被看成是一個單一字串或是可由分開合成的屬性來組成,這可能就不僅僅是第一正規化就可以達到的。 * Object Database 可以很便利的去儲存multivalued attributes,不需要在第一正規化裡建立許多分別的關聯來儲存這些值。 * Object Database 可以應用在computer-aided design, computer-aided software engineering multimedia, image databases, 和document/hypertext databases等方面。 * 一般來說,一個物件相當於實體關係模型(Entity Relationship Model, ER Model)裡的一個實體(entity)。 * 物件導向的概念是基於將與一個物件有相關的資料封裝成single unit。 * Object-oriented data model 其實就是一種類似ER model 的logical data model。 * 2008/05/07 * SQLite的簡介與應用 * SQLite,一套 Open Source 的關聯式資料庫,是「小巧(small)、可內嵌(embeddable)而且支援 SQL 查詢語言的資料庫」。 * 它是一個「麻雀雖小卻五臟俱全」的資料庫,因為 其體積僅僅 250KB 左右的 C Library,很適合內嵌的應用。適用於手持式裝置運用(如iPhone),此外桌上型運算的應用程式也有使用,如OpenOffice.org 2.0版之後就有內建SQLite;因此主要支援PDA系統和個人電腦甚至擴及大型伺服器。 * SQLite可用於非服務式、零配置、事務化的嵌入式SQL資料庫引擎;它與其它大多數SQL資料庫不同在它沒有獨立的服務進程。 * SQLite直接讀寫原始的磁碟文件,一個擁有多個表、索引、觸發器和視圖的完整SQL資料庫就包含在一個獨立的磁碟文件中。 * 資料庫文件的格式是跨平臺的,你可以在32位元和64位元系統之間、甚至在Big-Endian和Little-Endian兩種不同的磁碟架構間自由地拷貝資料庫,這一特性讓SQLite成為應用文件格式的一種流行選擇。 * 2008/05/08~09 * 北群:MPI平行計算程式設計基礎訓練課程 * 2008/05/15~16 * 南群:GRID基礎平台建置實作課程 * 2008/06/12 * 根據Hypertable 在Google Code 上wiki 發佈的文件做測試 * 標題為 HQLTutorial - A brief introduction to Hypertable Query Language (HQL):[http://code.google.com/p/hypertable/wiki/HQLTutorial] * 發現1: * 在INSERT & DELETE部份, 他教我們可以插入過去跟未來時間的資料,但是過去時間的資料卻不給插入。 * hypertable> insert into Pages values ('2006-01-01 23:59:59', "www.hypertable.org", "refer-url", "www.zvents.com"); --> 此指令是不可以使用的 * 會有這樣的錯誤訊息 Error: Problem sending updates (table=PAGES) - RANGE SERVER supplied timestamp is not strictly increasing * 經過查證:他說timestamp一般只預設允許系統自動分派,才不會造成混亂。可參考:[http://groups.google.com/group/hypertable-user/browse_thread/thread/da5f987760497811] * 發現2: * && TIMESTAMP >= '2008-06-10 09:12:37' && TIMESTAMP <= '2008-06-10 09:12:38' --> TIMESTAMP <= '時間' 的設定條件 並無效用 (答案未明@@) * {{{ hypertable> select "refer-url" from Pages where ROW >= "www.zvents.com/events/buy_tickets/80283482" && ROW <= "www.zvents.com/events/buy_tickets/80310000" && TIMESTAMP >= '2008-06-10 09:12:37' && TIMESTAMP <= '2008-06-10 09:12:38' DISPLAY_TIMESTAMPS; 2008-06-10 09:12:39.154415952 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:39.154415949 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:37.063994904 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:37.063994907 www.zvents.com/events/buy_tickets/80308810 refer-url www.zvents.com/las-vegas-nv/events/show/80308810-the-platters-coasters-and-the-legendary-lead-singers-of-the-temptations }}} * {{{ hypertable> select "refer-url" from Pages where ROW >= "www.zvents.com/events/buy_tickets/80283482" && ROW <= "www.zvents.com/events/buy_tickets/80310000" && TIMESTAMP >= '2008-06-10 09:12:38' DISPLAY_TIMESTAMPS; 2008-06-10 09:12:39.154415952 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:39.154415949 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin }}} * {{{ hypertable> select "refer-url" from Pages where ROW >= "www.zvents.com/events/buy_tickets/80283482" && ROW <= "www.zvents.com/events/buy_tickets/80310000" && TIMESTAMP <= '2008-06-10 09:12:38' DISPLAY_TIMESTAMPS; 2008-06-10 09:12:39.154415952 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:39.154415949 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:37.063994904 www.zvents.com/events/buy_tickets/80283482 refer-url www.zvents.com/san-francisco-ca/events/show/80283482-steve-martin 2008-06-10 09:12:37.063994907 www.zvents.com/events/buy_tickets/80308810 refer-url www.zvents.com/las-vegas-nv/events/show/80308810-the-platters-coasters-and-the-legendary-lead-singers-of-the-temptations }}} * 2008/06/18 * Data Challenge * [http://www.logos.t.u-tokyo.ac.jp/gxp/index.php?gxpc_make GXP 網頁] * [http://ieeexplore.ieee.org/iel5/9685/30569/01410681.pdf?tp=&isnumber=&arnumber=1410681 GXP paper] * (to-do list) HBase 和 Hypertable 的測試 * 查看是否有"like %XXX%"的query language (否) * 主機關機後,tables跟資料都一併消失,查看該如何先行flush,來將資料確切寫入主機 (目前NONE) * 2008/06/30 * GXP 與 Torque的初步簡易整合測試([wiki:chwhs/DataChallenge Data Challenge]) * To-do list * 測試HBase與Hypertable:若沒有flush 功能,那僅寫入記憶體,存多少資料量會爆掉不堪負荷? * Paper writing: key-value database, object database and relational database的差異比較。 (暫定~題目仍與sunny斟酌中) * memo: * 可以把之前比較過的資料整合過來(見2008/05/06) * 找國內外相關的conferences 資訊 * 找相關議題的reference papers 及web pages * 2008/07/03 * 處理請購流程 * 統計請購物品之品名、規格與數量,請廠商開報價單 * 申請請購上簽流程 * 2008/07/16 * java socket 程式之學習與測試 * 設定防火牆(iptables 指令) * 參考資料:[http://linux.vbird.org/linux_server/0250simple_firewall.php 按我] * ICMP(Internet Control Message Protocol,網際網路控制訊息通訊協定)及"ping"指令的處理 * 參考資料:[http://home.digitimes.com.tw/ShowNews.aspx?zCatId=A13&zNotesDocId=0000047852_A3X8Y873JB6YUQJ10NIUM 按我] * 2008/08/05 * 目前努力 * 學習DRBL * trace code: Gridway * 未來方向 * 整合之前研究所論文:在Grid上結合多個sites,不同sites可能由不同Local job managers做控管,及透過最上層的Global scheduler做集中管理,來選出最適合的resources來submit 各式jobs(包含single job or parallel jobs,如mpi程式或DSM程式) * step1:將DRBL 與scheduler-local job manager 整合在一起(如PBS,condor,和SGE等等) * step2:也將嘗試是否可以在DRBL之上安裝GLOBUS * step3:若以上步驟皆可順利完成,將可結合Metascheduler * 2008/08/25 * 進度及目前努力成果 * step1: 使用VMplayer 來模擬安裝Debian及測試Grid 環境 * step2: install DRBL server * step3: 測試DRBL client 是否可以網路開機正常運作 * step4: 在DRBL server上安裝Globus及PBS * step5: 測試DRBL server上之Globus及PBS是否能運作正常 * step6: 修改些微各自node該有所不同的目錄及檔案來使client可以正常run Globus及PBS * step7: 當Grid上有多個local schedulers,則可在Globus裡安裝Gridway來當meta-scheduler做控管[[BR]](不過Gridway有版本更換就需要變動系統的缺點,所以需要對Gridway內部程式做切割,或利用自行撰寫之meta-scheduler程式來做控管) * 遇到問題及解決方法 * 因為目前仍是在VM上做測試練習,一但之後移植到真實機器上RUN時,或許仍有不少實際環境中需要注意及操作之問題 * 等模擬的差不多後,若有機會,應該可以在實際環境上測試一下,以驗證其實作 * 目前PBS可以透過DRBL來完成server與client間的正常運作 * 僅需將各自擁有之目錄額外抽出處理即可 * Globus則是在server可以正常運作,client或許因為有某些共享之目錄權限不符或被佔用,而無法正常運作WS的部分(其他一般操作正常:如GRIDFTP...) * 或許仍需要找尋不能正常運作之原因是否與安裝在DRBL之上有關,因為以測試過將安裝目錄轉換到非NFS目錄下,仍無法運作 * 解決了-->請看Grid_environment wiki page * 目前在DRBL server上之Globus與PBS則可以彼此結合運作,現在也正將Gridway整合進來中 * 因為對於Gridway,之前只看過其文件,並未真正玩過它,現在正努力摸索中,也好比較之前在研究所自行寫作之global scheduler(meta-scheduler)的用途來做個比較 * Grid環境的實現 * Linux+DRBL+Globus+meta-scheduler+local-schedulers * 完整文件:[wiki:chwhs/Grid_environment Grid_environment wiki page] * 2008/08/27 * 已經成功(目前測試兩台:一台server,一台client) * Debian+DRBL+Globus+PBS: 兩台獨自可運作,也可以相互溝通 * 接著將針對與DRBL整合部分的各個小地方作改善,使得能夠讓使用者可以更容易上手 * 2008/09/05 * 試玩Gridway當中 * 包含"單獨"及與"Globus結合"兩種 * 目前在玩submit jobs這一塊 * 運用gwsubmit指令:遇到Failed: could not register user (check proxy) * 有檢查過globus proxy問題, 仍然未解, 持續解惑中 * 2008/09/09 * 撰寫"How to Install Globus Toolkit Based on DRBL"文件中 * 一邊寫一邊再次驗證過程 * 雖然會拖慢文件完成進度,不過有讓自己對這過程更深刻印象的效果,也可以對DRBL玩得再多深入一點 * 2008/09/16 * 已解決Gridway:運用gwsubmit指令,遇到Failed: could not register user (check proxy)的問題 * 經過檢查gwd.log檔案發現是Could not load execution MAD ws (Check name/path of gw_em_mad_ws or live proxy). 所以其實應該跟Gridway之execution MAD 啟動失敗有關 * 而在實際機器下運作Gridway並沒有問題,在VM下的Gridway則會啟動失敗,是因為VM會有一點點delay time,導致逾時而無法即時啟動EM * 因此需要修改src/em/gw_em_mad.c之gw_em_mad_start()裡等待EM回應的時間,將原本的0.5秒設定多一點秒數(例如:tv.tv_usec=500000-->5000000),讓它足夠因應VM的delay time而來得及等候EM成功回應即可 * reference: [http://bugzilla.mcs.anl.gov/globus/show_bug.cgi?id=6254 Bugzilla Bug 6254 "EM_MAD_WS doesn't load"] * 2008/09/30 * 持續玩Gridway中 * 原本一直以為應該很容易,但是不知道是啥原因,問題總是反反覆覆的出現,甚至有時候問題已經解決了,過一段時間卻又出現同一個問題,然後用相同的解法卻不能解!也就是解決一個問題就又會出現另一個問題,不知道是不是又跟VM有關,可是我想應該是我還沒全部摸熟的關係,所以一直花時間在反覆出現的小問題中,不過卻也因為這些小問題不斷出現,讓我在花時間解決問題當中,似乎對Gridway有更深的了解! * 近期我將持續玩這惱人的Gridway,也會把這期間所遇到的問題及解法整理出來且PO上來! * 2008/10/07 * Gridway目前已能在DRBL之上成功與Globus Toolkit和PBS結合 * Gridway與DRBL的結合並無任何的難度,server上安裝完Gridway之後,clients可以直接使用,並無需做任何的更動與設定! * 而與Globus Toolkit和PBS結合,則是只要在Globus Toolkit的WS部分已經做好完美設定及運作,即可以直接併入使用! * 目前則是在處理一個小部分 * Gridway之users總是在submit jobs時,皆是透過系統中某一個帳號來做代理者在Gridway中執行???不管哪一個user在執行,都會由這同一個帳號來做代理執行,就很像Condor一樣,也都是透過同一個使用者帳號來做代理執行,但是我從安裝到設定都沒有做過這部分的設定,很不解Gridway是以怎樣的方式來抓取這個使用者帳號來代理執行,但是我查了很多設定檔案都未看到類似相關設定!所以如果不是我自己設定過後又忘記,就是很有可能他有一個預設值去抓取代理使用者帳號,現在將往更Gridway內部層去做查看與調查!(誤) * 解決方法請看2008/10/09 * 2008/10/09 * 繼上述2008/10/07之問題已經解決 * 更正錯誤想法:Gridway並不像Condor一樣,Gridway沒有透過一個代理帳號統一執行,而是各自使用者透過自己的globus proxy即可以執行工作 * 由於將Gridway與Globus結合,所以當然Gridway users也需要擁有Globus的使用者憑證 * Gridway users在要執行gwsubmit指令來丟job前,必須先執行grid-proxy-init來向Globus要到使用者憑證的globus proxy * 當工作丟出去開始執行時,會先check使用者是否有正確的使用者憑證及globus proxy,所以會藉由根據Globus的/etc/grid-security/grid-mapfile內容來作確認 * 但是由於我是用VM在測試,且沒有為每一個測試帳號都申請不同的使用者憑證,於是採用很偷懶的方法來作測試,每一個使用者帳號都用同一組憑證來暫時試用,所以我的/etc/grid-security/grid-mapfile就會長的像下面這樣 {{{ "/DC=TW/DC=ORG/DC=NCHC/O=NCHC/OU=GTD/CN=Hui-Shan Chen 818130" chwhs "/DC=TW/DC=ORG/DC=NCHC/O=NCHC/OU=GTD/CN=Hui-Shan Chen 818130" gwadmin "/DC=TW/DC=ORG/DC=NCHC/O=NCHC/OU=GTD/CN=Hui-Shan Chen 818130" gwuser }}} * 於是不管是使用者chwhs, gwadmin,或是gwuser所產生的globus proxy裡面所代表的憑證subject皆為/DC=TW/DC=ORG/DC=NCHC/O=NCHC/OU=GTD/CN=Hui-Shan Chen 818130,所以當系統再做映對時,就會在第一行就映對到chwhs使用者,因此不管任何使用者只要擁有/DC=TW/DC=ORG/DC=NCHC/O=NCHC/OU=GTD/CN=Hui-Shan Chen 818130此同一個憑證者來做執行,最後都會變成chwhs這個使用者在執行 * 身為NCHCCA製作團隊之一的我,在此作了最不好的示範,應該要為不同的使用者帳號分別申請一個不同的使用者憑證,才不會造成這樣的問題,所以當大家若有測試上的需要,歡迎大家多多來申請使用者憑證,詳情請參考[http://ca.goc.nchc.org.tw/nchcca/index.php 國家高速網路憑證維運中心] * 2008/10/17 * 最近剛完成了DRBL+Globus+PBS+GridWay的整合 * 接著想要survey一些網站或paper,多看看別人的Grid環境有結合哪些更新奇更好用的software或middleware * 並希望可以再加入新的Grid元件,而成功建立一個功能更完善的Grid環境 * 2008/10/29 * 最近在玩CSF4(Community Scheduler Framework 4) * 之後將會針對Gridway與CSF4的優劣異同做比較分析 * 2008/11/10 * Gridway與CSF4的優劣異同比較分析 * [https://trac.nchc.org.tw/cloud/attachment/wiki/chwhs/Meta-schedulers%28Gridway%20and%20CSF4%29.odp Meta-scheduler(GridWay and CSF4)] * Meta-scheduler最基本目的就是要能夠在分散式異質性且動態的環境中,透過跟底層local schedulers互動,做完善的資源選取與工作執行。GridWay屬於client side meta-scheduler,易於使得在廣大的Grid環境裡針對不同管理domain做大規模的資源共享,也提供了許多job 及resource方面的scheduling policies。而CSF4則是建立在GT4之上,運用了許多Grid services實作而成的,並且提供了plug-in scheduling protocol,讓使用者可以自訂scheduling policy,更支援藉由queueing service配置的economic scheduling。 * 對於GridWay和CSF4或許我也都還沒有玩的十分透徹,僅粗淺的玩一下,可能無法十分的精準分出究竟哪個好,這兩者都各有其優點特色在,不過也是有其仍需要在改進的部分,如在Job service 及Reservation service的部分他們就有些許的不同,GridWay 在針對特殊的平行程式可以做job migration,而CSF4則是僅能針對搭配特製的Resource Manager來做Suspend/Resume jobs,並且雖然CSF4堅稱它有特殊的Resource Reservation的功能,不過也是僅限於特製的Resource Manager,並不支援GRAM adapter。 * 而在丟工作方面,針對指定資源的部分,雖然GridWay沒有像CSF4可以直接指定要丟哪個cluster,在指令方面也不像CSF4來的這麼豐富,可以有一堆參數可以指定,但是卻也能使用原始的方法直接在job script裡指定local job manager的hostname,來丟到想丟的cluster。 * GridWay似乎要在Globus下的環境運作,因為它目前只支援GRAM,還未測試GridWay是否能在沒有Globus的環境下獨立運作,而我想或許直接運用已經包好了許多WS的CSF4,或許能有更好的應用發展,在未來要改寫其內容應該也會比較好結合,畢竟CSF4不僅支援了GRAM還有額外包裝的Resource manager的adapter(RM-LSF),也能再獨立製作其他RM adapter,不過也尚未測試其在沒有Globus的環境下要如何運作,可能都還需要改造,只是我在JAVA這方面真的不太有天份..XD