diff --git a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp index ccecff91ccfa4ecd47825f20d8be84f1278405cc..b3ce5e2347418c858e2633ab438206d0d6125687 100755 --- a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp @@ -724,6 +724,13 @@ 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); trxnItem->imcheckpoint = imcheckpoint; /* immdiate checkpoint set imcheckpoint */ AddTxnRedoItem(g_dispatcher->txnWorker, trxnItem);