<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Sep 25, 2017 at 8:35 AM Grzegorz Junka <<a href="mailto:list1@gjunka.com">list1@gjunka.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>Fair enough, I missed that you can set ordered_set in ETS, but
      nevertheless it won't work with maps. However, even if I use ETS
      the Key is still stored twice, isn't? (once as the key for
      ordered_set, once as the value when the Id is the key).<br>
    </p></div><div text="#000000" bgcolor="#FFFFFF">
    <br></div></blockquote></div><div class="gmail_quote"><br></div><div class="gmail_quote">It depends. If it is a large binary (larger than 64 characters) it will go on the binary heap once unless you form it again and again in your code. Otherwise it will take up the double amount of space.</div><div class="gmail_quote"><br></div><div class="gmail_quote">We still don't know what the underlying problem statement is. This makes it harder to solve because whenever we come up with a solution, a new constraint is added and we have to adapt.</div><div class="gmail_quote"><br></div><div class="gmail_quote">One advantage of using something like a gb_trees for the above is that you only have the key once in the process heap and everything else will be pointers. It is also possible to use the above scheme with gb_trees. But then again, with ETS you can do key lookup from any process, whereas it has to factor through the tree owner with gb_trees.</div><div class="gmail_quote"><br></div><div class="gmail_quote">There is also the risk your problem is entirely too large to fit in memory at all, but we don't yet know the size of your N and how large of a machine you are willing to scale to, so it is hard to do any napkin math on the size here.</div><div class="gmail_quote"><br></div><div class="gmail_quote">In short, we need more info if we are to come up with a better solution :)<br></div></div>