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]