因為資料庫資料筆數太大(>兩千萬筆), 用一部電腦作query所耗的時間相當長, 如果想用MPI(五部pc)來實作message passing, 以一部主電腦將query分給這五部SLAVE電腦作, 之後將結果回傳給MASTER主電腦。
目前可以採行的系統架構和實作方法是? 可以選用的資料庫?
新手..請指教..
|
|
|
guest
|
張貼於: 2001/11/14 13:08
|
會員五級
註冊日: 2006/12/25
來自:
張貼數: 1097
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie 》的文章 : :因為資料庫資料筆數太大(>兩千萬筆), :用一部電腦作query所耗的時間相當長, :如果想用MPI(五部pc)來實作message passing, :以一部主電腦將query分給這五部SLAVE電腦作, :之後將結果回傳給MASTER主電腦。 : :目前可以採行的系統架構和實作方法是? :可以選用的資料庫? : :新手..請指教..
Oracel有個OEM的東東不知合不合用, 它還可以把data存到異地,像是異地備援那種, 它的主電腦好像還可以好幾台! 不知道這合不合用...
另外,這可能也跟AP有點關係, 你的一些資料處理是寫在自己的程式內, 還是全部丟給DB Server處理, 效果會有一些差異哦!
|
|
|
yjs
|
張貼於: 2001/11/15 17:04
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 69
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Duncan 》的文章 : ::▼ 引述《 Newbie 》的文章 : ::因為資料庫資料筆數太大(>兩千萬筆), ::用一部電腦作query所耗的時間相當長, ::如果想用MPI(五部pc)來實作message passing, ::以一部主電腦將query分給這五部SLAVE電腦作, ::之後將結果回傳給MASTER主電腦。 :: ::目前可以採行的系統架構和實作方法是? ::可以選用的資料庫? :: ::新手..請指教.. : :Oracel有個OEM的東東不知合不合用, :它還可以把data存到異地,像是異地備援那種, :它的主電腦好像還可以好幾台! :不知道這合不合用... : :另外,這可能也跟AP有點關係, :你的一些資料處理是寫在自己的程式內, :還是全部丟給DB Server處理, :效果會有一些差異哦! 直接用mpi實作就好了 我的質數程式就是這麼作
|
|
|
yjs
|
張貼於: 2001/11/15 17:04
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 69
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Duncan 》的文章 : ::▼ 引述《 Newbie 》的文章 : ::因為資料庫資料筆數太大(>兩千萬筆), ::用一部電腦作query所耗的時間相當長, ::如果想用MPI(五部pc)來實作message passing, ::以一部主電腦將query分給這五部SLAVE電腦作, ::之後將結果回傳給MASTER主電腦。 :: ::目前可以採行的系統架構和實作方法是? ::可以選用的資料庫? :: ::新手..請指教.. : :Oracel有個OEM的東東不知合不合用, :它還可以把data存到異地,像是異地備援那種, :它的主電腦好像還可以好幾台! :不知道這合不合用... : :另外,這可能也跟AP有點關係, :你的一些資料處理是寫在自己的程式內, :還是全部丟給DB Server處理, :效果會有一些差異哦! 直接用mpi實作就好了 我的質數程式就是這麼作
|
|
|
guest
|
張貼於: 2001/11/15 23:38
|
會員五級
註冊日: 2006/12/25
來自:
張貼數: 1097
|
Re:以MPI來實作Database Query的load balancing?
詳細解釋一下目前的狀況好了:
目前有一部A電腦, 資料庫中有2000萬筆病人的病歷資料, 現在想作一個查詢, select "阿斯批靈" from 病歷資料table。
因為資料筆數太多, 想透過MPI將Query分給五部slave電腦作, 然後再將結果傳回master電腦。
在下對於MPI約莫有粗淺瞭解, 但是對於MPI如何與Database及應用程式開發作結合, 還不是非常能夠掌握。
想請問諸位, 若有類似專案的開發經驗, 你們如何選擇programming tool以及適合的database? MPI與你們所選擇的programming tool及database如何bridge?
謝謝.
:▼ 引述《 yjs 》的文章 : ::▼ 引述《 Duncan 》的文章 : :: ::Oracel有個OEM的東東不知合不合用, ::它還可以把data存到異地,像是異地備援那種, ::它的主電腦好像還可以好幾台! ::不知道這合不合用... :: ::另外,這可能也跟AP有點關係, ::你的一些資料處理是寫在自己的程式內, ::還是全部丟給DB Server處理, ::效果會有一些差異哦! :直接用mpi實作就好了 :我的質數程式就是這麼作 :
|
|
|
yjs
|
張貼於: 2001/11/16 11:34
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 69
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie_diane 》的文章 : :詳細解釋一下目前的狀況好了: :目前有一部A電腦, :資料庫中有2000萬筆病人的病歷資料, :現在想作一個查詢, :select "阿斯批靈" from 病歷資料table。 :因為資料筆數太多, :想透過MPI將Query分給五部slave電腦作, :然後再將結果傳回master電腦。 有data base的原始程式嗎 或是直接告訴我一些詳細資料 病歷資料怎麼存的 說不定我可以幫你代工 修改data base或是 從0做起 當然只有可執行檔
|
|
|
kchuang
|
張貼於: 2001/11/16 17:03
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 355
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie_diane 》的文章 : :詳細解釋一下目前的狀況好了: : :目前有一部A電腦, :資料庫中有2000萬筆病人的病歷資料, :現在想作一個查詢, :select "阿斯批靈" from 病歷資料table。 : :因為資料筆數太多, :想透過MPI將Query分給五部slave電腦作, :然後再將結果傳回master電腦。 : :在下對於MPI約莫有粗淺瞭解, :但是對於MPI如何與Database及應用程式開發作結合, :還不是非常能夠掌握。 : :想請問諸位, :若有類似專案的開發經驗, :你們如何選擇programming tool以及適合的database? :MPI與你們所選擇的programming tool及database如何bridge?
可能不需要用到 MPI, 你可以在 5 台電腦上, 各灌一份 database, 各存 1/5 的資料(400萬筆), 然後在另一台電腦上 用 multithread 的方式同時下5個 query 分別給這5台databases (現在大部分的 database 應該都有 support query remote database 的 API, 這樣就不用 MPI 來傳資料了),這樣應該就 能滿足你的需求了, 不過這只適合用在以query 為主的 應用上,若你需要做 update, 就更複雜了
|
|
|
duncan
|
張貼於: 2001/11/20 9:30
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 69
|
Re:以MPI來實作Database Query的load balancing?
::因為資料筆數太多, ::想透過MPI將Query分給五部slave電腦作, ^^^^^^^^^^^^^^^^^^ ::然後再將結果傳回master電腦。
你的工作應主要是Database Query, 這計算及處理的動作應該是由DB Server本身作吧! 一般像這種Database Query不是 用分散式計算,像Turbo Linux Enfuzion, 最少我知道有些證券股市金融是這樣作的!
:可能不需要用到 MPI, 你可以在 5 台電腦上, 各灌一份 :database, 各存 1/5 的資料(400萬筆), 然後在另一台電腦上 :用 multithread 的方式同時下5個 query 分別給這5台databases :(現在大部分的 database 應該都有 support query remote :database 的 API, 這樣就不用 MPI 來傳資料了),這樣應該就 :能滿足你的需求了, 不過這只適合用在以query 為主的 :應用上,若你需要做 update, 就更複雜
Oracle的OEM好像有類似Cache的觀念, 所以不用把Database複製到每一台...
假如你只是要把複雜的SQL變快, 好像有一套叫FastSQL,可以把SQL最佳化, 可能可以快到2x,3x以上...
|
|
|
guest
|
張貼於: 2002/2/4 9:09
|
會員五級
註冊日: 2006/12/25
來自:
張貼數: 1097
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 duncan 》的文章 : : ^^^^^^^^^^^^^^^^^^ : :你的工作應主要是Database Query, :這計算及處理的動作應該是由DB Server本身作吧! :一般像這種Database Query不是 :用分散式計算,像Turbo Linux Enfuzion, :最少我知道有些證券股市金融是這樣作的! : : ::可能不需要用到 MPI, 你可以在 5 台電腦上, 各灌一份 ::database, 各存 1/5 的資料(400萬筆), 然後在另一台電腦上 ::用 multithread 的方式同時下5個 query 分別給這5台databases ::(現在大部分的 database 應該都有 support query remote ::database 的 API, 這樣就不用 MPI 來傳資料了),這樣應該就 ::能滿足你的需求了, 不過這只適合用在以query 為主的 ::應用上,若你需要做 update, 就更複雜 : :Oracle的OEM好像有類似Cache的觀念, :所以不用把Database複製到每一台... : :假如你只是要把複雜的SQL變快, :好像有一套叫FastSQL,可以把SQL最佳化, :可能可以快到2x,3x以上...
不知道您對 Oracle 9iRAC 有沒有概念.. 或野?Oracle 提供的 RAC 架構可以滿足您的需求.. 他可以動態 add/delete Cluster member, 甚至 shutdown 某一台 server 作 maintain 對整體 service 並不會停掉 service. 暨保有 HA 架構, 亦有 Load blance 的效果...
|
|
|
yjs
|
張貼於: 2002/10/9 22:20
|
會員一級
註冊日: 2006/12/25
來自:
張貼數: 69
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie 》的文章 : :因為資料庫資料筆數太大(>兩千萬筆), :用一部電腦作query所耗的時間相當長, :如果想用MPI(五部pc)來實作message passing, :以一部主電腦將query分給這五部SLAVE電腦作, :之後將結果回傳給MASTER主電腦。 : :目前可以採行的系統架構和實作方法是? :可以選用的資料庫? : :新手..請指教.. 你提的東西 很像master slave algorithm 程式我寫過 基本上很像tcp/ip上的 server client model 只要會用send recv就可以做出來
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie 》的文章 : :因為資料庫資料筆數太大(>兩千萬筆), :用一部電腦作query所耗的時間相當長, :如果想用MPI(五部pc)來實作message passing, :以一部主電腦將query分給這五部SLAVE電腦作, :之後將結果回傳給MASTER主電腦。 : :目前可以採行的系統架構和實作方法是? :可以選用的資料庫? : :新手..請指教..
create materialized view v_s .... as select from original where item-type='aspirin'
write five mpi slavers
foreach slavers{ select count(*) as var1 from v_s select * from v_s where row_num in a range of
}
|
會員五級
註冊日: 2006/12/25
來自:
張貼數: 1097
|
Re:以MPI來實作Database Query的load balancing?
:▼ 引述《 Newbie 》的文章 : :因為資料庫資料筆數太大(>兩千萬筆), :用一部電腦作query所耗的時間相當長, :如果想用MPI(五部pc)來實作message passing, :以一部主電腦將query分給這五部SLAVE電腦作, :之後將結果回傳給MASTER主電腦。 : :目前可以採行的系統架構和實作方法是? :可以選用的資料庫? : :新手..請指教..
MPI跟你的問題完全無關.
1) 每部PC是否有足夠的儲存空間存一份資料庫? 2) 你用哪種database? 3) 你打算怎麼做資料庫複寫 (Master->Slave)?
mySQL和PostgreSQL有資料庫複製弁鄏O 麻煩的地方是確定query不是out of date (複製要近乎即時,也要很可靠),所以增加 的管理effort大. 我不會想用這種做法, 雖然mySQL 公司推薦 (因為他們做不到Oracle式的叢集).
不如買一部好伺服器 (Xeon EM64T 或 AMD64, 16GB RAM)和最佳化AP code.
Oracle RAC 可以做到你所需要的但是你有 足夠的預算嗎? 除了軟體還要買SAN...
|