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)