[erlang-questions] Memory-effective queue handling

Dmitry Kolesnikov <>
Tue Jul 24 18:11:19 CEST 2012


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
> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list