精華區beta CSSE 關於我們 聯絡資訊
抱歉沒辦法直接回答問題,只是覺得這樣的系統設計有點怪怪的~ 看了storage_zone上的回應,GreatShot說的很有道理~~ (先評估花在compile以及i/o上的時間會是多少,再決定要購買什麼裝置) 不知道您的程式有試run過嗎? compile program + al lot of .exe file + database~~ 如果 .exe檔的個數固定,哪也許還ok, 但要是exe檔個數會增加,這個系統run起來應該會非常的慢呵! 之前在作一些大型,但是功能簡單的indexing時,還是都自己寫程式來處理。 因為試過用DB來儲存資料或是作indexing,overhead非常大~~~ 您敘述的產生並取得特定欄位的model,跟很久以前曾看過的TupleSpace有點像, 而且有一些套件可以使用(http://c2.com/cgi/wiki?TupleSpace)。 tupleSpace的model很簡單:generate tuple,match tuple。 例如,假設系統內部有以下tuple被產生: ("foo", 1, 2, "baz", 23.2) (4, 5, 6) ("foo", 7, 2, 100, 89) ("bar", 9, 2, "xyzzy", 100.3) 那麼要是某個process執行以下的query, ("foo", ?int, 2, ?str, ?float) 就可以找到 ("foo", 1, 2, "baz", 23.2) 這個tuple。 另外,使用直譯式程式語言,透過 eval(以Perl為例),來執行新產生的function, 那就不用花時間在compile呵? ※ 引述《bero (bero)》之銘言: : 回應前篇推文: : 這個系統有很多大大小小不同的exe檔 : ﹙a-life,一開始原始的exe檔都不大,部分作為基礎架構的exe則都不大,但經過 : 幾個generation之後會出現一些比較大的exe檔,每次演化都會增減exe檔的原始 : 碼,增加的比減少的多,如下:﹚ : 假設現在我要作一個很基本的動作﹙每個執行檔隨時都在做類似的動作﹚ : 1.搜尋一資料表某一欄位值,搜尋該欄位每列資料中符合某條件的資料 : 2.依據每列資料所對應的欄位做搜尋,尋找符合的每一列 : 3.直到該每列資料不再對應到任何符合的列為止 : 4.將最後得到的所有列資料的程式碼片段依據某列資料的「描述」作字串連接 : 5.compile這個字串成exe : 6.取代原有exe : 資料庫部分: : 程式碼片段也會不停增長。大約一萬五千多筆列資料,列成長不多,但資料可能成倍 : 成長,例如現在有五千筆資料約3G好了,可能經過兩個generation這五千筆資料變成 : 需要6G : 在storage_zone版有與版友討論了一下,歸納如下:﹙這是我對該版友的答案的解讀 : ,若有解讀錯誤,請板上大大多多指教^^﹚ : ﹙以iRAM為解決方案﹚ : 1.OS精簡化,放在一片iRAM上即可﹙或1~3片iRAM作raid﹚ : 2.DB檔案分置不同片的iRAM上,不做raid。除非該DB檔案超過4G才作raid : 3.大的程式碼檔案/exe檔/文字檔案全部放在iRAM的raid上﹙超過百MB的﹚ : 4.資料庫部分,可採memory storage方式﹙資料要符合規定﹚ : 文字檔會百MB的原因是這個系統會利用一些形式語言的字串去紀錄資料 : 不斷累加,該字串會非常長 : 所以其實我也不知道自己是需要大量I/O還是快速的I/O反應 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.222.123
revivalworld:我是為了減少 I/O 動作@@" 06/02 19:35