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 am...@apache.org on 2016/01/27 10:40:58 UTC

svn commit: r1726981 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/blob/ test/java/org/apache/jackrabbit/oak/plugins/document/

Author: amitj
Date: Wed Jan 27 09:40:58 2016
New Revision: 1726981

URL: http://svn.apache.org/viewvc?rev=1726981&view=rev
Log:
OAK-3931: Identify own repository id in shared datastore gc stats

Repository id is suffixed by asterix to identify local repository id

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java?rev=1726981&r1=1726980&r2=1726981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java Wed Jan 27 09:40:58 2016
@@ -144,7 +144,7 @@ public class  BlobGC extends AnnotatedSt
     
     private CompositeDataSupport toCompositeData(GarbageCollectionRepoStats statObj) throws OpenDataException {
         Object[] values = new Object[] {
-                statObj.getRepositoryId(),
+                statObj.getRepositoryId() + (statObj.isLocal() ? " *" : ""),
                 (statObj.getStartTime() == 0 ? "" : (new Date(statObj.getStartTime()))).toString(),
                 (statObj.getEndTime() == 0 ? "" : (new Date(statObj.getEndTime()))).toString(),
                 statObj.getLength(),

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats.java?rev=1726981&r1=1726980&r2=1726981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats.java Wed Jan 27 09:40:58 2016
@@ -21,6 +21,8 @@ package org.apache.jackrabbit.oak.plugin
  */
 public class GarbageCollectionRepoStats {
     private String repositoryId;
+
+    private boolean local;
     
     private long startTime;
     
@@ -69,4 +71,12 @@ public class GarbageCollectionRepoStats
     public void setStartTime(long startTime) {
         this.startTime = startTime;
     }
+
+    public boolean isLocal() {
+        return local;
+    }
+
+    public void setLocal(boolean local) {
+        this.local = local;
+    }
 }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java?rev=1726981&r1=1726980&r2=1726981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java Wed Jan 27 09:40:58 2016
@@ -198,16 +198,20 @@ public class MarkSweepGarbageCollector i
                 ((SharedDataStore) blobStore).getAllMetadataRecords(SharedStoreRecordType.REPOSITORY.getType());
     
             for (DataRecord repoRec : repoFiles) {
-                String repoId = SharedStoreRecordType.REFERENCES.getIdFromName(repoRec.getIdentifier().toString());
+                String id = SharedStoreRecordType.REFERENCES.getIdFromName(repoRec.getIdentifier().toString());
                 GarbageCollectionRepoStats stat = new GarbageCollectionRepoStats();
-                stat.setRepositoryId(repoId);
-                if (references.containsKey(repoId)) {
-                    DataRecord refRec = references.get(repoId);
+                stat.setRepositoryId(id);
+                if (id != null && id.equals(repoId)) {
+                    stat.setLocal(true);
+                }
+
+                if (references.containsKey(id)) {
+                    DataRecord refRec = references.get(id);
                     stat.setEndTime(refRec.getLastModified());
                     stat.setLength(refRec.getLength());
                     
-                    if (markers.containsKey(repoId)) {
-                        stat.setStartTime(markers.get(repoId).getLastModified());    
+                    if (markers.containsKey(id)) {
+                        stat.setStartTime(markers.get(id).getLastModified());
                     }
                     
                     LineNumberReader reader = null;

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java?rev=1726981&r1=1726980&r2=1726981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/SharedBlobStoreGCTest.java Wed Jan 27 09:40:58 2016
@@ -156,6 +156,9 @@ public class SharedBlobStoreGCTest {
             observedNumBlobs.add(stat.getNumLines());
             observedRepoIds.add(stat.getRepositoryId());
             Assert.assertTrue(stat.getStartTime() <= stat.getEndTime());
+            if (stat.getRepositoryId().equals(cluster1.repoId)) {
+                Assert.assertTrue(stat.isLocal());
+            }
         }
     
         Assert.assertTrue(Sets.difference(actualNumBlobs, observedNumBlobs).isEmpty());