You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2017/03/21 09:59:25 UTC
svn commit: r1787924 - in /jackrabbit/oak/trunk/oak-segment-tar/src:
main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java
test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java
Author: mduerig
Date: Tue Mar 21 09:59:25 2017
New Revision: 1787924
URL: http://svn.apache.org/viewvc?rev=1787924&view=rev
Log:
OAK-5953: PriorityCache statistics should support load exception count
Increment load exception count when a put fails because we couldn't find an empty slot
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java?rev=1787924&r1=1787923&r2=1787924&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java Tue Mar 21 09:59:25 2017
@@ -66,6 +66,7 @@ public class PriorityCache<K, V> {
private long hitCount;
private long missCount;
private long loadCount;
+ private long loadExceptionCount;
private long evictionCount;
private long size;
@@ -251,6 +252,7 @@ public class PriorityCache<K, V> {
weight += weighEntry(newE);
return true;
} else {
+ loadExceptionCount++;
return false;
}
}
@@ -328,7 +330,7 @@ public class PriorityCache<K, V> {
*/
@Nonnull
public CacheStats getStats() {
- return new CacheStats(hitCount, missCount, loadCount, 0, 0, evictionCount);
+ return new CacheStats(hitCount, missCount, loadCount, loadExceptionCount, 0, evictionCount);
}
public long estimateCurrentWeight() {
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java?rev=1787924&r1=1787923&r2=1787924&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java Tue Mar 21 09:59:25 2017
@@ -182,4 +182,23 @@ public class PriorityCacheTest {
assertEquals(count, cache.size() + cache.getStats().evictionCount());
}
+ @Test
+ public void loadExceptionCount() {
+ Random rnd = new Random();
+ PriorityCache<String, Integer> cache = new PriorityCache<>(16);
+ int success = 0;
+ int failure = 0;
+ for (int i = 0; i < 1000; i++) {
+ if (cache.put("k-" + i + "-" + rnd.nextInt(1000), i, 0, (byte) 0)) {
+ success++;
+ } else {
+ failure++;
+ }
+ }
+
+ assertEquals(0, cache.getStats().evictionCount());
+ assertEquals(success, cache.size());
+ assertEquals(failure, cache.getStats().loadExceptionCount());
+ }
+
}