tkalkirill commented on code in PR #7109:
URL: https://github.com/apache/ignite-3/pull/7109#discussion_r2584651701


##########
modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/PersistentPageMemoryMvPartitionStorage.java:
##########
@@ -586,4 +590,32 @@ public boolean shouldRelease() {
             return checkpointTimeoutLock.shouldReleaseReadLock();
         }
     }
+
+    /**
+     * This optimization reduces the IO operations performed when executing 
{@link #vacuum} inside {@link #runConsistently}, which is
+     * currently executed in a loop. This will allow the checkpoint to acquire 
a write lock more quickly.
+     */
+    @Override
+    protected void preloadingForGcIfNeededBusy(GcRowVersion gcRowVersion) {
+        RowId rowId = gcRowVersion.getRowId();
+        HybridTimestamp timestamp = gcRowVersion.getTimestamp();
+
+        var preloadingForGc = new PreloadingForGcInvokeClosure(rowId, 
timestamp, gcRowVersion.getLink(), this);
+
+        lockByRowId.lock(rowId);

Review Comment:
   Because in theory, it's possible to configure a more aggressive low 
watermark update, and a new garbage collection could start in parallel with the 
current one.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to