ETS table with only counters

Jesper Louis Andersen jesper.louis.andersen@REDACTED
Wed Nov 25 11:33:19 CET 2020

On Tue, Nov 24, 2020 at 8:33 PM Frank Muller <frank.muller.erl@REDACTED>

> Question: how should i set my table?
> 1. both concurrency set to true:
> 2. only read concurrency set to true:
> 3. only write concurrency set to true:
> Please explain why?
4. Use the 'counters' module.

The caveat is that your counter set is of fixed arity and you have a way to
look up an index. If both are true, they are likely to beat ETS in a
measurement benchmark shootout because less locks will be taken on them.
I'd measure your results.

The answer depends on your read/write patterns for solutions 1-3. And the
CPU architecture setup, mostly in core count. It's very likely you don't
get a full answer by thinking about how the locking structures are built in
isolation. General rules of thumb: If mostly read, go with 2. If mostly
written, go with 3. If you flip i.e., have a short window in which you
mostly write and then mostly read for a while, then another write-block,
..., then go with 1.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the erlang-questions mailing list