From 8c19fd638da7d5525e85d0cce41aa86e02798108 Mon Sep 17 00:00:00 2001 From: Chris Burroughs Date: Fri, 12 Jun 2015 12:22:30 +0100 Subject: [PATCH] undeprecate cache recentHitRate metrics patch by Chris Burroughs; reviewed by benedict for CASSANDRA-6591 --- CHANGES.txt | 1 + .../cassandra/metrics/CacheMetrics.java | 29 ++++++++++++++++++- .../apache/cassandra/utils/DynamicList.java | 2 +- .../stress/generate}/FasterRandom.java | 2 +- .../stress/generate/values/Bytes.java | 2 +- .../stress/generate/values/Strings.java | 2 +- 6 files changed, 33 insertions(+), 5 deletions(-) rename {src/java/org/apache/cassandra/utils => tools/stress/src/org/apache/cassandra/stress/generate}/FasterRandom.java (98%) diff --git a/CHANGES.txt b/CHANGES.txt index b80f272630..35e02a261e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,7 @@ * Change gossip stabilization to use endpoit size (CASSANDRA-9401) * Change default garbage collector to G1 (CASSANDRA-7486) * Populate TokenMetadata early during startup (CASSANDRA-9317) + * undeprecate cache recentHitRate (CASSANDRA-6591) 2.2 diff --git a/src/java/org/apache/cassandra/metrics/CacheMetrics.java b/src/java/org/apache/cassandra/metrics/CacheMetrics.java index 8b00e1c4ed..151268befb 100644 --- a/src/java/org/apache/cassandra/metrics/CacheMetrics.java +++ b/src/java/org/apache/cassandra/metrics/CacheMetrics.java @@ -37,8 +37,14 @@ public class CacheMetrics public final Meter hits; /** Total number of cache requests */ public final Meter requests; - /** cache hit rate */ + /** all time cache hit rate */ public final Gauge hitRate; + /** 1m hit rate */ + public final Gauge oneMinuteHitRate; + /** 5m hit rate */ + public final Gauge fiveMinuteHitRate; + /** 15m hit rate */ + public final Gauge fifteenMinuteHitRate; /** Total size of cache, in bytes */ public final Gauge size; /** Total number of cache entries */ @@ -71,6 +77,27 @@ public class CacheMetrics return Ratio.of(hits.getCount(), requests.getCount()); } }); + oneMinuteHitRate = Metrics.register(factory.createMetricName("OneMinuteHitRate"), new RatioGauge() + { + protected Ratio getRatio() + { + return Ratio.of(hits.getOneMinuteRate(), requests.getOneMinuteRate()); + } + }); + fiveMinuteHitRate = Metrics.register(factory.createMetricName("FiveMinuteHitRate"), new RatioGauge() + { + protected Ratio getRatio() + { + return Ratio.of(hits.getFiveMinuteRate(), requests.getFiveMinuteRate()); + } + }); + fifteenMinuteHitRate = Metrics.register(factory.createMetricName("FifteenMinuteHitRate"), new RatioGauge() + { + protected Ratio getRatio() + { + return Ratio.of(hits.getFifteenMinuteRate(), requests.getFifteenMinuteRate()); + } + }); size = Metrics.register(factory.createMetricName("Size"), new Gauge() { public Long getValue() diff --git a/src/java/org/apache/cassandra/utils/DynamicList.java b/src/java/org/apache/cassandra/utils/DynamicList.java index fc3d523d57..30f5160f64 100644 --- a/src/java/org/apache/cassandra/utils/DynamicList.java +++ b/src/java/org/apache/cassandra/utils/DynamicList.java @@ -238,7 +238,7 @@ public class DynamicList canon.add(c); c++; } - FasterRandom rand = new FasterRandom(); + ThreadLocalRandom rand = ThreadLocalRandom.current(); assert list.isWellFormed(); for (int loop = 0 ; loop < 100 ; loop++) { diff --git a/src/java/org/apache/cassandra/utils/FasterRandom.java b/tools/stress/src/org/apache/cassandra/stress/generate/FasterRandom.java similarity index 98% rename from src/java/org/apache/cassandra/utils/FasterRandom.java rename to tools/stress/src/org/apache/cassandra/stress/generate/FasterRandom.java index 8235e3b87b..455fec480c 100644 --- a/src/java/org/apache/cassandra/utils/FasterRandom.java +++ b/tools/stress/src/org/apache/cassandra/stress/generate/FasterRandom.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cassandra.utils; +package org.apache.cassandra.stress.generate; import java.util.Random; diff --git a/tools/stress/src/org/apache/cassandra/stress/generate/values/Bytes.java b/tools/stress/src/org/apache/cassandra/stress/generate/values/Bytes.java index c247e480fc..3c15c8790d 100644 --- a/tools/stress/src/org/apache/cassandra/stress/generate/values/Bytes.java +++ b/tools/stress/src/org/apache/cassandra/stress/generate/values/Bytes.java @@ -24,7 +24,7 @@ import java.nio.ByteBuffer; import java.util.Arrays; import org.apache.cassandra.db.marshal.BytesType; -import org.apache.cassandra.utils.FasterRandom; +import org.apache.cassandra.stress.generate.FasterRandom; public class Bytes extends Generator { diff --git a/tools/stress/src/org/apache/cassandra/stress/generate/values/Strings.java b/tools/stress/src/org/apache/cassandra/stress/generate/values/Strings.java index db78eb7035..b58fee28c4 100644 --- a/tools/stress/src/org/apache/cassandra/stress/generate/values/Strings.java +++ b/tools/stress/src/org/apache/cassandra/stress/generate/values/Strings.java @@ -21,7 +21,7 @@ package org.apache.cassandra.stress.generate.values; import org.apache.cassandra.db.marshal.UTF8Type; -import org.apache.cassandra.utils.FasterRandom; +import org.apache.cassandra.stress.generate.FasterRandom; public class Strings extends Generator {