<div dir="ltr">A shot to try is to use a map instead. A trie should compress better on paper, but I'm not sure the overhead in Erlang makes it competitive with just shoving everything into a map (on 18.x), which uses a HAMT.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 22, 2015 at 1:56 PM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 22, 2015 at 1:19 PM, Adam Krupička <span dir="ltr"><<a href="mailto:akrupicka@mail.muni.cz" target="_blank">akrupicka@mail.muni.cz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="overflow:hidden">The gen_server approach would be more efficient; most efficient would be<br>
storing a copy of the trie in each process (but also most memory<br>
wasteful).</div></blockquote></div><br></div></span><div class="gmail_extra">Alternatively, level compress[0] the first few levels into N processes.<br><br></div><div class="gmail_extra">[0] Technically you then get a concurrent level-compressed trie.<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_extra"><br clear="all"><br>-- <br><div>J.</div>
</div></font></span></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">J.</div>
</div>