[erlang-questions] Ets read concurrency tweak

Viacheslav V. Kovalev <>
Thu May 14 12:29:00 CEST 2015


Hi, List!

I'm playing with ets tweaks and specifically with read_concurrency.
I've written simple test to measure how this tweak impacts on read
performance. Test implementations is here
https://gist.github.com/kovyl2404/826a51b27ba869527910

Briefly, this test sequentially creates three [public, set] ets tables
with different read_concurrency options (without any tweaks, with
{read_concurrency, true} and with {read_concurrency, false}). After
one table created, test pupulates table with some random data and runs
N readers (N is power of 2 from 4 to 1024). Readers performs K random
reads and exists.

Result is quite surprising for me. There absolutely no difference
between 3 these tests. I have run this test on Erlang 17 on 2-, 8-,
and 64-core machines and could not find any significant performance
impact from this tweak.

Could anybody explain usecase of this tweak? What should I do to see
any difference and understand when to use this option?


More information about the erlang-questions mailing list