[erlang-questions] Singleton Process
Scott Lystig Fritchie
fritchie@REDACTED
Thu Feb 5 07:58:35 CET 2009
Edward Stow <ed.stow@REDACTED> wrote:
eb> However, I would like to know if this is how you would produce a
eb> counter object that returns an incrementally increasing value.
Edward, a suggestion. Assuming there's no need for the counter to grow
by exactly 1 each time, and that skipping some values is OK, then
... why bother updating the "next_id.dat" file each time? Why not
update it very Nth time, e.g. every 100 or 7000 times? If the process
crashes, it'll restart and start handing out values based on
"next_id.dat" anyway.
If you think disk/network/Mnesia/Amazon S3/whatever is going to be too
slow, then at some interval before you reach N, spawn a proc to update
it asynchronously. (Bonus: allow only one of them at a time, to avoid
icky race conditions.)
-Scott
More information about the erlang-questions
mailing list