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 2016/06/10 09:42:10 UTC
svn commit: r1747675 -
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Author: mduerig
Date: Fri Jun 10 09:42:10 2016
New Revision: 1747675
URL: http://svn.apache.org/viewvc?rev=1747675&view=rev
Log:
OAK-4461: Improve logging during compaction cycles
Also log the maximum number of cycles
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1747675&r1=1747674&r2=1747675&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java Fri Jun 10 09:42:10 2016
@@ -886,13 +886,15 @@ public class FileStore implements Segmen
try {
int cycles = 0;
boolean success = false;
- while (cycles++ < gcOptions.getRetryCount() &&
+ while (cycles < gcOptions.getRetryCount() &&
!(success = revisions.setHead(before.getRecordId(), after.getRecordId()))) {
// Some other concurrent changes have been made.
// Rebase (and compact) those changes on top of the
// compacted state before retrying to set the head.
+ cycles++;
gcListener.info("TarMK GC #{}: compaction detected concurrent commits while compacting. " +
- "Compacting these commits. Cycle {}", GC_COUNT, cycles);
+ "Compacting these commits. Cycle {} of {}",
+ GC_COUNT, cycles, gcOptions.getRetryCount());
SegmentNodeState head = segmentReader.readHeadState();
after = compact(bufferWriter, head, cancel);
if (after == null) {
@@ -907,9 +909,10 @@ public class FileStore implements Segmen
if (!success) {
gcListener.info("TarMK GC #{}: compaction gave up compacting concurrent commits after {} cycles.",
- GC_COUNT, cycles - 1);
+ GC_COUNT, cycles);
if (gcOptions.getForceAfterFail()) {
gcListener.info("TarMK GC #{}: compaction force compacting remaining commits", GC_COUNT);
+ cycles++;
success = forceCompact(bufferWriter, cancel);
if (!success) {
gcListener.warn("TarMK GC #{}: compaction failed to force compact remaining commits. " +
@@ -922,7 +925,7 @@ public class FileStore implements Segmen
if (success) {
gcListener.compacted(SUCCESS, newGeneration);
gcListener.info("TarMK GC #{}: compaction succeeded in {} ({} ms), after {} cycles",
- GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles - 1);
+ GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles);
return true;
} else {
gcListener.info("TarMK GC #{}: cleaning up after failed compaction", GC_COUNT);
@@ -941,7 +944,7 @@ public class FileStore implements Segmen
gcListener.compacted(FAILURE, newGeneration);
gcListener.info("TarMK GC #{}: compaction failed after {} ({} ms), and {} cycles",
- GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles - 1);
+ GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles);
return false;
}
} catch (InterruptedException e) {