ETS / Mnesia RAM表中的官方/建议/允许的最大记录数(或RAM表大小)

时间:2012-10-11 11:22:37

标签: windows linux unix erlang mnesia

Erlang是许多“新时代”(淫秽快速和容错)消息系统的良好应用程序。示例可以是RabbitMQejabberdWhatsApp for Mobile e.t.c.无论消息传递系统是如何构建的,它都需要知道正在进行的会话,登录的用户,e.t.c。我认为对于这样的系统来说,保持数据IN-MEMORY是不可避免的。

对于Erlang,可能的最大值是多少,或者允许的最大值是多少?ETS tablemnesia RAM table中官方建议的最大记录数是多少?是否存在特定的表大小,如果超过则会导致整个VM崩溃?只要基础操作系统允许,ETS TablesMnesia RAM Tables是否会增长到任何数量?我听说过Mnesia Table Limit 2 or 4GB,但我认为这是针对磁盘表的。

一个需要处理大量数据的未来应用程序的典型示例-MEMORY是OLAP SystemsReal Time analyticsSocial Gaming等在这方面的思考激发了这个问题。

1 个答案:

答案 0 :(得分:6)

mnesia是ETS和DETS表的包装层。对于32位系统,ETS表的最大值约为3.5GB。对于64位系统,最大值要多得多,因此从技术上讲,它受OS可用RAM的限制。对于DETS(并且非常愚蠢),限制为2GB。

我没有与其他键值存储系统的任何基准测试,但请记住,ETS直接存储Erlang术语而不进行任何编码/解码。