[ 
https://issues.apache.org/jira/browse/CASSANDRA-975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877948#action_12877948
 ] 

Ben Manes commented on CASSANDRA-975:
-------------------------------------

I've been thinking over the test and I don't think that the performance numbers 
should be given much weight. It is an excellent stress test, though, by showing 
that the interleaving of operations does not cause a system failure.

As a performance test, it primarily indicates that there is no added 
bottleneck. Writing a robust benchmark is extremely difficult, especially on 
the JVM. For now I've been punting by using JBoss' benchmark, but I haven't 
evaluated its correctness to determine how valid it is. At some point I should 
write my own, but that's a non-trivial undertaking. JBoss' test only show the 
per-operation overhead, which are nearly equivalent to a ConcurrentHashMap 
(which I decorate). It does not take into account the system performance due to 
a cache miss, so a higher hit rate but slower per-operation execution may 
result in much better system performance.

Example concerns with this test from a benchmark perspective include:
(1) Test environment does not reflect production (laptop)
(2) JVM parameters and OS are not turned (e.g. GC algorithm)
(3) Short-running test does not show if there is degradation/failures over time
(4) Working set does not reflect production usage (random - should use trace 
data)
(5) Impact of hit-rate has a dramatic impact (miss penalty = I/O), so the test 
may artificially benefit an eviction policy.

It would be nice to see what the hit-rate is between the two implementations. I 
suspect that in Matthew's test the SecondChance is a tad better, so the fewer 
I/O calls to a slow laptop disk can account for much of the difference. If the 
LIRS was stable, it would probably indicate much faster system performance due 
to having a 5-10% higher hit-rate.

> explore upgrading CLHM
> ----------------------
>
>                 Key: CASSANDRA-975
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-975
>             Project: Cassandra
>          Issue Type: Task
>            Reporter: Jonathan Ellis
>            Assignee: Matthew F. Dennis
>            Priority: Minor
>             Fix For: 0.8
>
>         Attachments: 0001-trunk-975.patch, clhm_test_results.txt, 
> insertarator.py, readarator.py
>
>
> The new version should be substantially better "on large caches where many 
> entries were readon large caches where many entries were read," which is 
> exactly what you see in our row and key caches.
> http://code.google.com/p/concurrentlinkedhashmap/issues/detail?id=9
> Hopefully we can get Digg to help test, since they could reliably break CLHM 
> when it was buggy.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to