mreutegg commented on code in PR #812:
URL: https://github.com/apache/jackrabbit-oak/pull/812#discussion_r1064807971


##########
oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java:
##########
@@ -569,11 +569,14 @@ public boolean containsRevision(@NotNull Revision 
revision) {
      *     committed
      * </p>
      *
-     * @param context the revision context.
+     * @param clusterId the clusterId.
      * @param batchSize the batch size to purge uncommitted revisions
+     * @param olderThanLastWrittenRootRevPredicate @{@link 
java.util.function.Predicate} to filter revisions older than lastWrittenRootRev

Review Comment:
   ```suggestion
        * @param olderThanLastWrittenRootRevPredicate {@link 
java.util.function.Predicate} to filter revisions older than lastWrittenRootRev
   ```



##########
oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java:
##########
@@ -3704,6 +3735,30 @@ private static Supplier<Integer> 
getDelay(DocumentNodeStore ns) {
         }
     }
 
+    /**
+     * Background unmerged branch commits & collision marker operation.
+     */
+    private static class BackgroundPurgeOperation extends NodeStoreTask {
+
+        BackgroundPurgeOperation(DocumentNodeStore nodeStore, AtomicBoolean 
isDisposed) {
+            // run every 60 secs
+            super(nodeStore, isDisposed, Suppliers.ofInstance(60000));
+        }
+
+        @Override
+        protected void execute(@NotNull DocumentNodeStore nodeStore) {
+            final Clock clock = nodeStore.getClock();
+            long now = clock.getTime();
+            LOG.info("BackgroundPurgeOperation.execute: started purging for 
non active clusterIds");

Review Comment:
   I would not log info messages for periodic operations like these. Change to 
debug? `UnmergedBranches.purgeUnmergedBranchCommitAndCollisionMarkers()` will 
log a message at info level when something was purged.



##########
oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java:
##########
@@ -2931,6 +2946,22 @@ private int backgroundSweep() throws 
DocumentStoreException {
         return num;
     }
 
+    private void purgeUnmergedBranchCommitAndCollisionMarkers(final 
ClusterNodeInfoDocument cluster) {
+        branches.purgeUnmergedBranchCommitAndCollisionMarkers(store, 
cluster.getClusterId(), purgeUncommittedRevisions,
+                getOlderThanLastWrittenRootRevPredicate(cluster));
+    }
+
+    /**
+     * Method to create @{@link java.util.function.Predicate} to filter 
revisions
+     *
+     * @return @{@link java.util.function.Predicate} to filter revisions older 
than lastWrittenRootRev
+     */
+    @NotNull
+    @VisibleForTesting
+    static java.util.function.Predicate<Revision> 
getOlderThanLastWrittenRootRevPredicate(final ClusterNodeInfoDocument cluster) {

Review Comment:
   I would rather move this as a non-static method to 
`ClusterNodeInfoDocument`. Something like 
`ClusterNodeInfoDocument.asOlderThanLastWrittenRootRevPredicate()`. 
   
   WDYT?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to