我知道Clojure在多核機器上運行良好,但我想知道它是否適用於遍佈許多機器的JVM集羣?Clojure的STM模型可以用於多個JVM嗎?
6
A
回答
6
Runa看着這個使用兵馬俑,並最終發佈swarmiji作爲分佈式代理庫。
SMP系統和羣集之間的真正差異之一是共享內存。在集羣中,代碼必須要求數據,而在SMP中,它可以直接讀取數據。這有一些很好的優點和一些(縮放)的缺點。
Clojure的STM與其他許多STM系統的區別很大,它建立在相對時間的概念上,正如每個事務生成計數器所測量的。如果沒有共同訪問這一代計數器,它不能給事件定單,也不能做它的工作(請原諒這個過分簡單的解釋)。
STM的主要動機之一是創建一個真正利用共享內存併發性的系統,例如確保讀者永遠不會等待作者,讀者總能看到有效的數據。因爲這是爲了利用共享內存而構建的,所以它失去了很多它的吸引力而沒有共享內存。
演員模型(ala Erlang)更適合分佈式計算。或者換句話說:或許我們不應該試圖在分佈式併發孔中設置一個方形釘。
6
不是。我的意思是,它可以被製作;像Terracotta聲稱能夠在多個節點上分配邏輯JVM,但clojure的STM /集合語義非常依賴線程間內存共享,從而有效節省空間和時間。
您可能更適合使用消息傳遞或面向批處理的架構來處理系統的多節點部分。
3
我可以做到這一點,但它不是一個好主意。現在NoSql有一個很大的原因,它是因爲事務不能很好地工作。
1
的AVOUT項目允許你在多臺計算機分發STM狀態:
相關問題
- 1. Clojure STM屬於哪種類型的交易模型?
- 2. 可以訪問Clojure的STM的值歷史嗎?
- 3. 單個模型可以「屬於」多個父模型嗎?
- 4. Clojure STM模糊因子
- 5. 1 TaskTracker可以運行多個JVM嗎?
- 6. STM和改變clojure
- 7. 您可以在同一個項目中混合使用ClojureScript和JVM-Clojure嗎?
- 8. 模型是否可以屬於多個模型?
- 9. Django上的模型可以使用多個slug字段嗎?
- 10. polymorhpic_on可以用於多個列嗎?
- 11. 多個JVM進程可以共享公共類的內存嗎?
- 12. 我可以使用Prefetch_related預取多個模型嗎?爲了
- 13. 在django模型驗證器中可以使用多個值嗎?
- 14. 可以監視STM的爭用級別嗎?
- 15. 這個Clojure代碼可以優化嗎?
- 16. Java:核心可用於JVM嗎?
- 17. Java STM:關於Multiverse STM的問題
- 18. 在Clojure中STM的併發性
- 19. 我可以使用基於XML的模型的EMF/ECore嗎?
- 20. 我可以在單臺PC上運行多個JVM嗎?
- 21. 我在哪裏可以將模型用於Prism應用中的多個模塊?
- 22. 多模塊maven原型可以設置爲可選模塊嗎?
- 23. 配置VisualVM以可視化多個JVM
- 24. xVal可以用於傳統的Web表單模型嗎?
- 25. 我可以在Nginx中使用Clojure嗎?
- 26. Db_Table模型可用於自舉嗎?
- 27. Clojure STM與原子和代理形式有關係嗎?
- 28. 是否有任何clojure工具可以查看Clojure如何使用JVM內存?
- 29. backbone.js模型可以包含多個集合嗎?
- 30. 控制器可以管理多個模型嗎?
有保羅Stadig在一個點上完成的工作,使其能夠分散的Clojure Terracotta上的數據結構(因此,幾個bug修復都進入了這兩個項目)。但與實際支持分佈式STM相比,這是相距甚遠。 – 2011-04-21 18:03:50