Instead of that complicated minute/day/week/year data retention scheme, why not just randomly replace an entry in a fixed-size store? So the probability of a datum being in the store is inversely proportional to the log of its age.
And it's a one-liner.