[erlang-questions] Mnesia record with composite key and QLC questions

Ulf Wiger ulf.wiger@REDACTED
Mon May 18 19:12:11 CEST 2009

Steve Davis wrote:
> This may also be necessary with data persisted where a "monolithic"
> table could exceed 3GB (on 32-bit) or 4GB (on 64- bit) during its
> lifetime. I believe, but I'm not 1000% sure that this storage limit
> doesn't apply to ram_copies but only to disk_copies. Perhaps someone
> can confirm this as I've never actually tested the limit as yet.

RAM copies are basically limited by available memory.

On 32-bit systems, this will be either 3GB or 4GB.
On a stock 32-bit Linux system, each OS process is
limited to 3GB. This limit can be lifted ussing e.g.
a PAE kernel, where each process can address 4GB,
or a 64-bit Linux kernel, where I believe each 32-bit
application is allowed to address 4GB, which also
is the maximum addressable memory for 32-bit Erlang.

Running 64-bit Erlang, a RAM table (ets) can be made
huge (provided sufficient amounts of memory installed).
I don't know the practical limit. I've tested only up to
ca 13 GB in one mnesia ram_copy table. That was no problem.

Remember, though that on 64-bit, most Erlang data types
require twice as much memory (binaries are an exception).

Dets files are limited to 2GB per table. There is no 64-bit
dets variant.

Ulf W
Ulf Wiger
CTO, Erlang Training & Consulting Ltd

More information about the erlang-questions mailing list