<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 23, 2015 at 12:06 PM, Benoit Chesneau <span dir="ltr"><<a href="mailto:bchesneau@gmail.com" target="_blank">bchesneau@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div><br></div></span><div>I am not sure to understand the solution. Do you mean copying the map to different processes? What would be a good default number of processes then o start to copy the data? (/me is thinking N = number of cpus but...)</div><div><br></div></div></div></blockquote><div><br></div><div>maps() has no sharing, so in that case you need a single process to contain all of the data. Or you would have to split the data among several processes by level compressing the first levels of the radix tree. But this assumes you have roughly uniform distribution in your lookups.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div></div><div>Related to that I am wondering what `read_concurrency` means internally?  </div></div></div></blockquote><br clear="all"></div>Mutexes around ETS are RX-mutexes. That is, they support either many readers or one (eXclusive) writer. But there are several ways to construct such an RX-mutex. <br><br>In particular, you can make sure that if two or more cores want to read, they don't need to synchronize caches and be coherent. Such a "reader-optimized" mutex is selected when you enable read_concurrency. It makes writes more expensive in the sense you have to grab locks across all cores, but it makes the common read much faster.<br><br></div><div class="gmail_extra">I think Rickard Green and/or Sverker Eriksson and/or Björn-Egil Dahlberg knows more about these details if you are interested.<br><br>-- <br><div class="gmail_signature">J.</div>
</div></div>