2012-10-11 24 views
4

Erlang一直是許多「新時代」(猥瑣快速和容錯)消息傳遞系統的良好應用。例子可以是RabbitMQejabberd,WhatsApp for Mobile e.t.c.無論消息系統如何構建,它都需要知道正在進行的會話,登錄的人員,e.t.c.我認爲持有數據IN-MEMORY是不可避免的這種系統。

對於Erlang,可能的最大值是多少,或者允許的最大值是多少,或者ETS tablemnesia RAM table中官方建議的最大記錄數是多少?是否有一個特定的表大小已知崩潰整個虛擬機如果超過?只要底層操作系統允許,可以增加到ETS TablesMnesia RAM Tables?我聽說2 or 4GBMnesia Table Limit,但我認爲這是用於磁盤表。

將需要處理大量數據IN-MEMORY的未來應用程序的典型示例是OLAP Systems,Real Time analytics,Social Gaming e.t.c.這方面的思考激發了這個問題。ETS/Mnesia RAM中的官方/建議/允許的最大記錄數(或RAM表大小)表

回答

6

mnesia是ETS和DETS表的包裝層。對於32位系統,ETS表的最大值約爲3.5GB。對於64位系統,最大值更大,因此在技術上它受OS可用RAM限制。對於DETS(這是非常愚蠢的)限制是2GB。

我沒有任何與其他鍵值存儲系統的基準測試,但請記住,ETS直接存儲Erlang術語而不需要任何編碼/解碼。

+0

哇!謝謝@galadog –

+1

但如何限制的大小,如果例如我使用它的緩存? –