You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2014/06/24 00:14:25 UTC

[jira] [Comment Edited] (CASSANDRA-6591) un-deprecate cache recentHitRate and expose in o.a.c.metrics

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

Benedict edited comment on CASSANDRA-6591 at 6/23/14 10:12 PM:
---------------------------------------------------------------

Apologies for the delay on this. I think this ticket does slightly fit into a wider discussion, though here we're using a Meter instead of a Histogram/Timer (where codahale is much more broken by default). The Meters _are_ still costlier to keep around and maintain than we might otherwise like: each meter maintains a LongAdder (which is in principle to avoid contention, but for our use case just means more cpu-cache misses), but more importantly maintains _four_ LongAdders per meter, so each time we attempt to hit the cache we must update at least 8 LongAdders (since we update two meters here). I would prefer to see us moving to a scheme that uses only two AtomicLong for this data, but I'm not sure we need to hold up this ticket for that.

However I would say we only need to maintain _either_ hits _or_ misses, since even for a rate property, misses = total - hits, so we can define our misses as a simple Gauge returning requests - hits




was (Author: benedict):
Apologies for the delay on this. I think this ticket does slightly fit into a wider discussion, though here we're using a Meter instead of a Histogram/Timer (where codahale is much more broken by default). The Meters *are* still costlier to keep around and maintain than we might otherwise like: each meter maintains a LongAdder (which is in principle to avoid contention, but for our use case just means more cpu-cache misses), but more importantly maintains *four* LongAdders per meter, so each time we attempt to hit the cache we must update at least 8 LongAdders (since we update two meters here). I would prefer to see us moving to a scheme that uses only two AtomicLong for this data, but I'm not sure we need to hold up this ticket for that.

However I would say we only need to maintain *either* hits *or* misses, since even for a rate property, misses = total - hits, so we can define our misses as a simple Gauge returning requests - hits



> un-deprecate cache recentHitRate and expose in o.a.c.metrics
> ------------------------------------------------------------
>
>                 Key: CASSANDRA-6591
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6591
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Chris Burroughs
>            Assignee: Chris Burroughs
>            Priority: Minor
>         Attachments: j6591-1.2-v1.txt, j6591-1.2-v2.txt, j6591-1.2-v3.txt
>
>
> recentHitRate metrics were not added as part of CASSANDRA-4009 because there is not an obvious way to do it with the Metrics library.  Instead hitRate was added as an all time measurement since node restart.
> This does allow changes in cache rate (aka production performance problems)  to be detected.  Ideally there would be 1/5/15 moving averages for the hit rate, but I'm not sure how to calculate that.  Instead I propose updating recentHitRate on a fixed interval and exposing that as a Gauge.



--
This message was sent by Atlassian JIRA
(v6.2#6252)