我有節點A上的幾個Erlang應用程序,他們正在對節點B進行rpc調用,我有Mnesia存儲過程(數據庫查詢函數)以及我的Mnesia數據庫。現在,偶爾,同步進程進行RPC調用數到節點B的數據可以上升到150。現在,我有幾個問題:
Erlang遠程過程調用模塊內部
問題1:對於每個RPC調用遠程節點,確實節點一個全新的(例如說TCP/IP或UDP連接或者他們在傳輸中使用的任何東西)CONNECTION?或者只有一個連接,並且所有的rpc調用都共享這個連接(因爲節點A和節點B連接[與該epmd進程有關])?
問題2:如果我有一個節點上的數據中心的應用程序和我有另一個集中管理的Mnesia數據庫和這些應用程序表共享可被複制的,零散的,索引等相同的模式,這是一個更好的選擇:使用rpc調用以從數據節點獲取數據到應用程序節點,或者使用TCP/IP(Scalaris傢伙爲失敗檢測器所做的方式)開發一個全新的框架來迎合網絡延遲問題?
問題3:有沒有人在那裏測試過或者板凳標記的方式,可以通過回答以下RPC調用的效率?
(a) Erlang Node可以在不中斷的情況下將同時進行的rpc調用的最大數量推到另一個調用上的最大數量是多少?
(b)有沒有辦法通過系統配置或操作系統設置增加這個數字? (請參閱在您的答案中打開Solaris for x86)
(c)是否有任何其他方式的應用程序來請求Mnesia運行遠程Erlang節點而不是rpc的數據? (說CORBA,REST [要求HTTP端至端],Megaco協議,SOAP等)
你問很多問題,根本不接受答案。爲什麼? – 2011-03-17 14:13:52