I do not think that this is a good idea to keep whole 24h statistic is same queue.
For "cleanup" efficiency you could have a queue per time slot (e.g. per hour, per 30min, etc) Instead of queue, I am using patched gb_trees exactly for same purposes but I am doing both read/write.
- Dmitry
On Jul 24, 2012, at 6:11 PM, Attila Rajmund Nohl wrote:
> Hello!
> I have a data structure where I manage "historical data": a list of
> timestamps when events happened. I only need to know how many events
> happened in the last 24 hours. When an event happens, I put the
> timestamp into the queue (I use the queue module in OTP). When I check
> how many values are in the queue, I also remove the entries that are
> older than 24 hours. My problem is: when I remove the old elements, I
> can do it one by one and at each step the (possibly big) queue gets
> copied and I run out of memory. Is there a cleverer way to remove
> elements from queue? Or maybe I shall use an ordered_set ETS table
> instead of a queue?
> _______________________________________________
> erlang-questions mailing list
> erlang-questi...@erlang.org
> http://erlang.org/mailman/listinfo/erlang-questions