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/25 07:40:35 UTC

svn commit: r1726579 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java

Author: amitj
Date: Mon Jan 25 06:40:34 2016
New Revision: 1726579

URL: http://svn.apache.org/viewvc?rev=1726579&view=rev
Log:
OAK-3527: Improve logging for blob GC

Added INFO progress logs per batchCount
Logged exception

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.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=1726579&r1=1726578&r2=1726579&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 Mon Jan 25 06:40:34 2016
@@ -250,6 +250,9 @@ public class MarkSweepGarbageCollector i
                 LOG.info("Blob garbage collection completed in {}. Number of blobs deleted [{}]", sw.toString(),
                     deleteCount, maxLastModifiedInterval);
             }
+        } catch (Exception e) {
+            LOG.error("Blob garbage collection error", e);
+            throw e;
         } finally {
             if (!LOG.isTraceEnabled()) {
                 Closeables.close(fs, threw);
@@ -263,10 +266,10 @@ public class MarkSweepGarbageCollector i
      */
     protected void mark(GarbageCollectorFileState fs) throws IOException, DataStoreException {
         LOG.debug("Starting mark phase of the garbage collector");
-        
+
         // Create a time marker in the data store if applicable
         GarbageCollectionType.get(blobStore).addMarkedStartMarker(blobStore, repoId);
-        
+
         // Mark all used references
         iterateNodeTree(fs);
 
@@ -515,6 +518,10 @@ public class MarkSweepGarbageCollector i
                                     saveBatchToFile(idBatch, writer);
                                     idBatch.clear();
                                 }
+
+                                if (count.get() % getBatchCount() == 0) {
+                                    LOG.info("Collected ({}) blob references", count.get());
+                                }
                             } catch (Exception e) {
                                 throw new RuntimeException("Error in retrieving references", e);
                             }
@@ -610,14 +617,14 @@ public class MarkSweepGarbageCollector i
                     if (ids.size() > getBatchCount()) {
                         blobsCount += ids.size();
                         saveBatchToFile(ids, bufferWriter);
-                        LOG.debug("retrieved {} blobs", blobsCount);
+                        LOG.info("Retrieved ({}) blobs", blobsCount);
                     }
                 }
 
                 if (!ids.isEmpty()) {
                     blobsCount += ids.size();
                     saveBatchToFile(ids, bufferWriter);
-                    LOG.debug("retrieved {} blobs", blobsCount);
+                    LOG.info("Retrieved ({}) blobs", blobsCount);
                 }
 
                 // sort the file