[erlang-questions] dict vs. ETS choice
Thu Jul 10 22:56:25 CEST 2014
On Thursday 10 July 2014 14:29:42 Derek Brown wrote:
> Let's say you want to store on the order of tens of thousands key/value
> pairs, with integer keys and proplist values (less than 10 simple key/value
> pairs per proplist). Read-heavy with few writes.
> What factors would you consider when going with a dict or an ETS table, or
> perhaps something else?
Factors to consider? Whatever benchmarking both cases tells me. I would run
each test case alongside a few different workloads on the same machine to
figure out what good/bad things to expect from each approach.
Someone will probably come along who actually has done this both ways and tell
you there is indeed a Right Way, but usually I've found that taking the time
to run some informal benchmarks provides more insight (which winds up useful
elsewhere) than adherence to advice/data structure guidelines. Also, data
structure advice often turns out to be a wordy version of "it depends..." and
then a request for more information about the higher level problem you're
actually trying to solve.
What is the overall effect you're trying to achieve? It would be helpful to
spell out the problem you're trying to solve (at the higher level like "how to
best store 100k player's stats at once" instead of at the implementation
detail of "is a dict or an ETS table better for 100k values?"). Very often
you'll find someone has already tackled something similar and can give you
some good advice you'd never get when asking just about the details of data
structures. This prevents X->Y problem discussions.
More information about the erlang-questions