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());
+    }
+
 }