Garbage may fill the memory if consumer checks cache too seldom.<br><br>-- <br>Dmitry Belyaev<br><br>----- Reply message -----<br>From: "Ian" <hobson42@gmail.com><br>To: <erlang-questions@erlang.org><br>Subject: [erlang-questions] Guidance to a cache mechanism<br>Date: Thu, Nov 1, 2012 20:16<br><br><br>Hi,<br><br>I'm not quite clear on what you want to do, but it appears that you want <br>to discard messages if they are "too old", for some definition of too <br>old, and you are proposing a combination of ETS and gen-server to do this.<br><br>Why not simply discard messages that are too old when you read them, and <br>read the next? That, coupled with having no synchronous send/reads to <br>stall your process, and you are golden.<br><br>Or have I missed something?<br><br>Ian<br><br>On 30/10/2012 11:08, Maruthavanan Subbarayan wrote:<br>> Hi,<br>><br>> I have to develop a caching queue, which also should should after a <br>> expiry time.<br>><br>> I may have around 500+ messages which may come in a second. Each <br>> message might contain 100-200 bytes.<br>><br>> So I have designed the system like below.<br>><br>> 1. Queue would be a gen server.<br>> 2. All messages which would come on same second would be stored in <br>> state of the gen_server like a record {datetime(),[<list of messages>]}<br>> 3. When the time differs, I would insert the above record to ets table <br>> and update the state of gen_server.<br>> 4. There would be a timer running timer:send_interval which would <br>> message timeout the gen_server for every second, when this message is <br>> received, then gen_server would delete the ets table according to <br>> expiry configured.<br>><br>> I was looking on some guidance to check if the above is fine and with <br>> with stand the performance. I am foreseeing maximum expiry would be <br>> around 60 minutes.<br>><br>> Thanks,<br>> Marutha<br>><br>><br>> _______________________________________________<br>> erlang-questions mailing list<br>> erlang-questions@erlang.org<br>> http://erlang.org/mailman/listinfo/erlang-questions<br><br>