[infinispan-dev] Faster LRU
Vladimir Blagojevic
vblagoje at redhat.com
Tue Jul 5 17:33:43 EDT 2011
On 11-07-05 4:58 PM, Dan Berindei wrote:
> +1 Vladimir, I had a similar idea to implement a BCHM segment entirely
> using a single LinkedHashMap - obviously that requires a lot more work
> to integrate with the existing BCHM then using a LHM inside the
> eviction policy, but it should also be more memory efficient.
Ok great! I still want to keep BCHM lock amortization unless someone can
prove that they have a better solution.
> I would definitely remove the old LRU, it's much harder to understand
> because of the batching and the JDK already has tests to guarantee
> that LinkedHashMap is correct.
>
> One idea for testing I was discussing with Galder on my pull request's
> page was to simulate a real cache workload, with get misses triggering
> a put and also a small delay, in order to evaluate how good an
> eviction policy is at keeping the most used keys in.
>
> We definitely need to *some* testing for this, we can't afford to wait
> for another community member to come in a year's time and prove to us
> that we're rubbish :)
>
I think I've nailed it now as the results I am getting are correct in
terms of segment sizing and everything else. Performance looks very good
as well.
How about we do the following. I'll issue a pull request for an updated
LRU along with my updated MapStressTest. I will use LRU name for this
faster version, I'll rename current LRU as OLD_LRU and if all
correctness, performance and other tests we have prove new LRU works as
it should we'll just drop OLD_LRU from code altogether prior to
5.0.Final. As soon as this pull is integrated you can add your eviction
correctness code to MapStressTest or make a new test - whatever suits
you better!
Any objections?
Regards,
Vladimir
More information about the infinispan-dev
mailing list