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/10/26 08:06:24 UTC

svn commit: r1766643 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob: MarkSweepGarbageCollector.java datastore/DataStoreBlobStore.java

Author: amitj
Date: Wed Oct 26 08:06:24 2016
New Revision: 1766643

URL: http://svn.apache.org/viewvc?rev=1766643&view=rev
Log:
OAK-4627: [BlobGC] Reduce logging during delete

 Logging deleted blob ids in batches of 512

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java

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=1766643&r1=1766642&r2=1766643&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 Oct 26 08:06:24 2016
@@ -82,7 +82,7 @@ public class MarkSweepGarbageCollector i
 
     public static final String TEMP_DIR = StandardSystemProperty.JAVA_IO_TMPDIR.value();
 
-    public static final int DEFAULT_BATCH_COUNT = 2048;
+    public static final int DEFAULT_BATCH_COUNT = 1024;
     
     public static final String DELIM = ",";
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java?rev=1766643&r1=1766642&r2=1766643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java Wed Oct 26 08:06:24 2016
@@ -46,6 +46,7 @@ import com.google.common.base.Predicate;
 import com.google.common.cache.LoadingCache;
 import com.google.common.cache.Weigher;
 import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
 import com.google.common.io.ByteStreams;
 import com.google.common.io.Closeables;
 import org.apache.commons.io.FileUtils;
@@ -406,6 +407,7 @@ public class DataStoreBlobStore implemen
     public long countDeleteChunks(List<String> chunkIds, long maxLastModifiedTime) throws Exception {
         int count = 0;
         if (delegate instanceof MultiDataStoreAware) {
+            List<String> deleted = Lists.newArrayListWithExpectedSize(512);
             for (String chunkId : chunkIds) {
                 String blobId = extractBlobId(chunkId);
                 DataIdentifier identifier = new DataIdentifier(blobId);
@@ -416,10 +418,17 @@ public class DataStoreBlobStore implemen
                     dataRecord.getLastModified(), success);
                 if (success) {
                     ((MultiDataStoreAware) delegate).deleteRecord(identifier);
-                    log.info("Deleted blob [{}]", blobId);
+                    deleted.add(blobId);
                     count++;
+                    if (count % 512 == 0) {
+                        log.info("Deleted blobs {[]}", deleted);
+                        deleted.clear();
+                    }
                 }
             }
+            if (!deleted.isEmpty()) {
+                log.info("Deleted blobs {[]}", deleted);
+            }
         }
         return count;
     }