tkalkirill commented on code in PR #920:
URL: https://github.com/apache/ignite-3/pull/920#discussion_r921145149
##########
modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/checkpoint/CheckpointPagesWriter.java:
##########
@@ -87,57 +103,66 @@ public class CheckpointPagesWriter implements Runnable {
*
* @param tracker Checkpoint metrics tracker.
* @param writePageIds Queue of dirty page IDs to write.
+ * @param updatePartitionIds Queue of dirty partition IDs to update.
* @param updStores Updating storage.
* @param doneFut Done future.
* @param beforePageWrite Action to be performed before every page write.
* @param log Logger.
* @param threadBuf Thread local byte buffer.
* @param checkpointProgress Checkpoint progress.
* @param pageWriter File page store manager.
+ * @param ioRegistry Page IO registry.
+ * @param partitionFilePageStoreManager Partition file page store manager.
* @param shutdownNow Shutdown supplier.
*/
CheckpointPagesWriter(
IgniteLogger log,
CheckpointMetricsTracker tracker,
- CheckpointDirtyPagesQueue writePageIds,
+ IgniteConcurrentMultiPairQueue<PersistentPageMemory, FullPageId>
writePageIds,
+ IgniteConcurrentMultiPairQueue<PersistentPageMemory,
GroupPartitionId> updatePartitionIds,
ConcurrentMap<PageStore, LongAdder> updStores,
CompletableFuture<?> doneFut,
Runnable beforePageWrite,
ThreadLocal<ByteBuffer> threadBuf,
CheckpointProgressImpl checkpointProgress,
CheckpointPageWriter pageWriter,
+ PageIoRegistry ioRegistry,
+ PartitionFilePageStoreManager partitionFilePageStoreManager,
BooleanSupplier shutdownNow
) {
this.log = log;
this.tracker = tracker;
this.writePageIds = writePageIds;
+ this.updatePartitionIds = updatePartitionIds;
this.updStores = updStores;
this.doneFut = doneFut;
this.beforePageWrite = beforePageWrite;
this.threadBuf = threadBuf;
this.checkpointProgress = checkpointProgress;
this.pageWriter = pageWriter;
+ this.ioRegistry = ioRegistry;
+ this.partitionFilePageStoreManager = partitionFilePageStoreManager;
this.shutdownNow = shutdownNow;
}
/** {@inheritDoc} */
@Override
public void run() {
try {
- CheckpointDirtyPagesQueue pagesToRetry = writePages(writePageIds);
-
- if (pagesToRetry.isEmpty()) {
- doneFut.complete(null);
- } else {
- log.info("Checkpoint pages were not written yet due to "
- + "unsuccessful page write lock acquisition and will
be retried [pageCount={}]", pagesToRetry.size());
+ IgniteConcurrentMultiPairQueue<PersistentPageMemory, FullPageId>
pageIdsToRetry = writePages(writePageIds);
- while (!pagesToRetry.isEmpty()) {
- pagesToRetry = writePages(pagesToRetry);
+ while (!pageIdsToRetry.isEmpty()) {
+ if (log.isInfoEnabled()) {
Review Comment:
Discussed personally, no need to change.
--
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]