Author: chetanm
Date: Fri Jun 28 10:26:27 2013
New Revision: 1497714
URL: http://svn.apache.org/r1497714
Log:
OAK-863 - Enable stats for various caches used in Oak by default
Adding support for resetting cache stats
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean.java?rev=1497714&r1=1497713&r2=1497714&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean.java
Fri Jun 28 10:26:27 2013
@@ -112,6 +112,11 @@ public interface CacheStatsMBean {
*/
long getElementCount();
+ /**
+ * The maximum weight of entries the cache may contain.
+ * @return the maximum total weight of entries the cache may contain
+ */
+ long getMaxTotalWeight();
/**
* Total weight of the complete cache. Depending on implementation it
might be the amount
@@ -122,13 +127,12 @@ public interface CacheStatsMBean {
long estimateCurrentWeight();
/**
- * The maximum weight of entries the cache may contain.
- * @return the maximum total weight of entries the cache may contain
+ * Gathers the stats of the cache for logging.
*/
- long getMaxTotalWeight();
+ String cacheInfoAsString();
/**
- * Gathers the stats of the cache for logging.
+ * Reset the cache stats
*/
- String cacheInfoAsString();
+ void resetCache();
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java?rev=1497714&r1=1497713&r2=1497714&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
Fri Jun 28 10:26:27 2013
@@ -31,6 +31,8 @@ public class CacheStats implements Cache
private final Weigher weigher;
private final long maxWeight;
private final String name;
+ private com.google.common.cache.CacheStats statsSnapShot =
+ new com.google.common.cache.CacheStats(0,0,0,0,0,0);
public CacheStats(Cache cache, String name, Weigher weigher, long
maxWeight) {
this.cache = cache;
@@ -122,6 +124,13 @@ public class CacheStats implements Cache
}
@Override
+ public synchronized void resetCache(){
+ //Cache stats cannot be rest at Guava level. Instead we
+ //take a snapshot and then subtract it from future stats calls
+ statsSnapShot = cache.stats();
+ }
+
+ @Override
public String cacheInfoAsString() {
return Objects.toStringHelper("CacheStats")
.add("hitCount", getHitCount())
@@ -146,7 +155,7 @@ public class CacheStats implements Cache
}
private com.google.common.cache.CacheStats stats() {
- return cache.stats();
+ return cache.stats().minus(statsSnapShot);
}
/**