Author: mduerig
Date: Fri Oct  9 15:07:05 2015
New Revision: 1707753

URL: http://svn.apache.org/viewvc?rev=1707753&view=rev
Log:
OAK-3502: Improve logging during cleanup
Debug level logging for cleanup of tar files

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java?rev=1707753&r1=1707752&r2=1707753&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarReader.java
 Fri Oct  9 15:07:05 2015
@@ -647,6 +647,9 @@ class TarReader implements Closeable {
      */
     synchronized TarReader cleanup(Set<UUID> referencedIds, CompactionMap cm, 
Set<UUID> removed)
             throws IOException {
+        String name = file.getName();
+        log.debug("Cleaning up {}", name);
+
         Set<UUID> cleaned = newHashSet();
         Map<UUID, List<UUID>> graph = getGraph();
 
@@ -703,7 +706,7 @@ class TarReader implements Closeable {
         size += 2 * BLOCK_SIZE;
 
         if (count == 0) {
-            // none of the entries within this tar file are referenceable
+            log.debug("None of the entries of {} are referenceable.", name);
             removed.addAll(cleaned);
             logCleanedSegments(cleaned);
             return null;
@@ -712,23 +715,25 @@ class TarReader implements Closeable {
             // unless this tar file lacks a pre-compiled segment graph
             // in which case we'll always generate a new tar file with
             // the graph to speed up future garbage collection runs.
+            log.debug("Not enough space savings. ({}/{}). Skipping clean up of 
{}",
+                    access.length() - size, access.length(), name);
             return this;
         }
 
-        String name = file.getName();
         int pos = name.length() - "a.tar".length();
         char generation = name.charAt(pos);
         if (generation == 'z') {
-            // no garbage collection after reaching generation z
+            log.debug("No garbage collection after reaching generation z: {}", 
name);
             return this;
         }
 
         File newFile = new File(
                 file.getParentFile(),
                 name.substring(0, pos) + (char) (generation + 1) + ".tar");
+
+        log.debug("Writing new generation {}", newFile.getName());
         TarWriter writer = new TarWriter(newFile);
-        for (int i = 0; i < sorted.length; i++) {
-            TarEntry entry = sorted[i];
+        for (TarEntry entry : sorted) {
             if (entry != null) {
                 byte[] data = new byte[entry.size()];
                 access.read(entry.offset(), entry.size()).get(data);


Reply via email to