[erlang-questions] where it's the best way to store a very big term object shared between processes

Richard Carlsson carlsson.richard@REDACTED
Thu Oct 22 15:18:26 CEST 2015


If the data is constant once the table is built, and the entries are big so
you don't want to copy them out from an ets table or even avoid passing
them between processes (if you want to distribute the table to a large
number of processes), you could generate a module, e.g. using Merl, with a
lookup function that does what the trie lookup would do. It might take some
effort but the speedup could be huge.


        /Richard

On Thu, Oct 22, 2015 at 1:56 PM, Jesper Louis Andersen <
jesper.louis.andersen@REDACTED> wrote:

>
> On Thu, Oct 22, 2015 at 1:19 PM, Adam Krupička <akrupicka@REDACTED>
> wrote:
>
>> The gen_server approach would be more efficient; most efficient would be
>> storing a copy of the trie in each process (but also most memory
>> wasteful).
>>
>
> Alternatively, level compress[0] the first few levels into N processes.
>
> [0] Technically you then get a concurrent level-compressed trie.
>
>
> --
> J.
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20151022/726180f1/attachment.htm>


More information about the erlang-questions mailing list