title: Timeout Mechanism for Hashtable
body: <p>I have a hashtable that under heavy-traffic. I want to add timeout mechanism to hashtable, remove too old records. My concerns are,
  - It should be lightweight 
  - Remove operation has not time critical. I mean (timeout value is 1 hour) remove operation can be after 1 hour or and 1 hour 15 minute. There is no problem. </p>
  
  <p>My opinion is,
  I create a big array (as ring buffer)that store put time and hashtable key,
  When adding to hashtable, using array index find a next slot on array put time, 
    if array slot empty, put insertion time and HT key,
    if array slot is not empty, compare insertion time for timeout occured.<br>
       if timeout occured remove from Hashtable (if not removed yet)
       it not timeout occured, increment index till to find empty slot or timeouted array slot.
  When removing from hashtable there is no operation on big array.</p>
  
  <p>Shortly, for every add operation to Hashtable, may remove 1 timeouted element from hashtable  or do nothing. </p>
  
  <p>What is your the more elegant and more lightweight solution ?</p>
  
  <p>Thanks for helps,</p>