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 mr...@apache.org on 2017/02/27 12:16:34 UTC
svn commit: r1784541 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
Author: mreutegg
Date: Mon Feb 27 12:16:33 2017
New Revision: 1784541
URL: http://svn.apache.org/viewvc?rev=1784541&view=rev
Log:
OAK-5794: Track time to check GC candidate nodes
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java?rev=1784541&r1=1784540&r2=1784541&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java Mon Feb 27 12:16:33 2017
@@ -122,6 +122,7 @@ public class VersionGarbageCollector {
int intermediateSplitDocGCCount;
int updateResurrectedGCCount;
final Stopwatch collectDeletedDocs = Stopwatch.createUnstarted();
+ final Stopwatch checkDeletedDocs = Stopwatch.createUnstarted();
final Stopwatch deleteDeletedDocs = Stopwatch.createUnstarted();
final Stopwatch collectAndDeleteSplitDocs = Stopwatch.createUnstarted();
final Stopwatch sortDocIds = Stopwatch.createUnstarted();
@@ -137,6 +138,7 @@ public class VersionGarbageCollector {
", splitDocGCCount=" + splitDocGCCount +
", intermediateSplitDocGCCount=" + intermediateSplitDocGCCount +
", timeToCollectDeletedDocs=" + collectDeletedDocs +
+ ", timeToCheckDeletedDocs=" + checkDeletedDocs +
", timeToSortDocIds=" + sortDocIds +
", timeTakenToDeleteDeletedDocs=" + deleteDeletedDocs +
", timeTakenToCollectAndDeleteSplitDocs=" + collectAndDeleteSplitDocs +
@@ -147,6 +149,7 @@ public class VersionGarbageCollector {
private enum GCPhase {
NONE,
COLLECTING,
+ CHECKING,
DELETING,
SORTING,
SPLITS_CLEANUP,
@@ -171,6 +174,7 @@ public class VersionGarbageCollector {
this.elapsed = Stopwatch.createStarted();
this.watches.put(GCPhase.NONE, Stopwatch.createStarted());
this.watches.put(GCPhase.COLLECTING, stats.collectDeletedDocs);
+ this.watches.put(GCPhase.CHECKING, stats.checkDeletedDocs);
this.watches.put(GCPhase.DELETING, stats.deleteDeletedDocs);
this.watches.put(GCPhase.SORTING, stats.sortDocIds);
this.watches.put(GCPhase.SPLITS_CLEANUP, stats.collectAndDeleteSplitDocs);
@@ -310,7 +314,10 @@ public class VersionGarbageCollector {
log.info("Iterated through {} documents so far. {} found to be deleted",
docsTraversed, gc.getNumDocuments());
}
- gc.possiblyDeleted(doc);
+ if (phases.start(GCPhase.CHECKING)) {
+ gc.possiblyDeleted(doc);
+ phases.stop(GCPhase.CHECKING);
+ }
if (gc.hasLeafBatch()) {
if (phases.start(GCPhase.DELETING)) {
gc.removeLeafDocuments(phases.stats);