The official / recommended / permissible maximum number of entries (or the size of the RAM table) in the ETS / Mnesia RAM table

Erlang has been a good app for many New Age messaging systems (obscene fast and fault tolerant). Examples could be RabbitMQ , ejabberd , WhatsApp for Mobile , etc. Regardless of how the messaging system is created, it will need to know which sessions are ongoing, who is logged in, etc. I assume that data for storing IN-MEMORY inevitable for such systems.

For Erlang, what is the maximum possible, or what is the maximum allowed OR what is the official number of maximum entries indicated in the ETS table or mnesia RAM table ? Is there a certain size of the table, which, as you know, splits the entire virtual machine if it is exceeded? Do ETS Tables or Mnesia RAM Tables grow to any amount if the underlying operating system allows it? I heard about the Mnesia Table Limit of 2 or 4GB , but I thought it was for disk tables.

A typical example of future applications that will process large amounts of data IN-MEMORY, OLAP Systems , Real Time analytics , Social Gaming , etc. Thinking in this line motivated this question.

+4
source share
1 answer

mnesia is the wrapper layer of the ETS and DETS tables. For a 32-bit system, the maximum value of the ETS table is about 3.5 GB. For a 64-bit system, the maximum value is much larger, therefore, it is technically limited by the RAM available for the OS. For DETS (and this is very stupid) the limit is 2 GB.

I do not have tests with other key storage systems, but remember that ETS stores Erlang terms directly without encoding / decoding.

+6
source

Source: https://habr.com/ru/post/1439133/


All Articles