diff --git a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp index 91c8f84b1..40fb6dc16 100755 --- a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp @@ -727,6 +727,12 @@ static void DispatchToOnePageWorker(XLogReaderState *record, const RelFileNode & */ static void DispatchTxnRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime, bool imcheckpoint) { + if (g_instance.attr.attr_storage.enable_batch_dispatch) { + for (uint32 i = 0; i < g_dispatcher->pageWorkerCount; i++) { + RedoItem *item = CreateLSNMarker(record, expectedTLIs, false); + AddPageRedoItem(g_dispatcher->pageWorkers[i], item); + } + } RedoItem *trxnItem = CreateRedoItem(record, 1, ANY_WORKER, expectedTLIs, recordXTime, true); trxnItem->imcheckpoint = imcheckpoint; /* immdiate checkpoint set imcheckpoint */ AddTxnRedoItem(g_dispatcher->txnWorker, trxnItem);