[erlang-questions] Design question -- a valid or foolhardy approach to ets update?
Mihai Balea
mihai@REDACTED
Tue Jul 14 15:30:19 CEST 2009
On Jul 14, 2009, at 8:07 AM, Steve Davis wrote:
> Hi Mihai -
>
> Wow. That is the perfect solution.
>
> Since update_counter ensures the update will be atomic... well,
> that's just exactly the right thing to do.
Just be aware that atomic updates means that updates will still be
serialized - you will still run into a concurrency bottleneck since
the operation will prevent any other access to the table while it is
in progress. It will probably be faster than the gen_server solution,
but still not a fully concurrent approach.
I'm not even sure a fully concurrent solution is possible with ets
tables. You will probably have to encapsulate session ids in processes
to do that... which will significantly increase your memory footprint
and transaction latency, but will scale better.
I would suggest you try update_counter first and if it turns out it is
indeed a bottleneck, then go for a fancier approach.
Mihai
More information about the erlang-questions
mailing list