diff --git a/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp b/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp index 56039e5c6e648e57bbdd7a56a188c69fba2f8644..58b447e3d69faa8591b8e7140203d2fa75d93076 100755 --- a/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp @@ -158,6 +158,8 @@ static bool DispatchRepOriginRecord(XLogReaderState *record, List *expectedTLIs, static bool DispatchUBTreeRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); static bool DispatchUBTree2Record(XLogReaderState* record, List* expectedTLIs, TimestampTz recordXTime); +static bool DispatchUBTree3Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); +static bool DispatchUBTree4Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); static bool RmgrRecordInfoValid(XLogReaderState *record, uint8 minInfo, uint8 maxInfo); static bool RmgrGistRecordInfoValid(XLogReaderState *record, uint8 minInfo, uint8 maxInfo); @@ -227,6 +229,10 @@ static const RmgrDispatchData g_dispatchTable[RM_MAX_ID + 1] = { { DispatchLogicalDDLMsgRecord, RmgrRecordInfoValid, RM_LOGICALDDLMSG_ID, XLOG_LOGICAL_DDL_MESSAGE, XLOG_LOGICAL_DDL_MESSAGE }, { DispatchGenericRecord, RmgrRecordInfoValid, RM_GENERIC_ID, XLOG_GENERIC_LOG, XLOG_GENERIC_LOG }, + { DispatchUBTree3Record, RmgrRecordInfoValid, RM_UBTREE3_ID, XLOG_UBTREE3_INSERT_PCR_INTERNAL, + XLOG_UBTREE3_INSERT_PCR_META }, + { DispatchUBTree4Record, RmgrRecordInfoValid, RM_UBTREE4_ID, XLOG_UBTREE4_UNLINK_PAGE, + XLOG_UBTREE4_MARK_PAGE_HALFDEAD }, }; const int REDO_WAIT_SLEEP_TIME = 5000; /* 5ms */ @@ -1395,6 +1401,18 @@ static bool DispatchUBTree2Record(XLogReaderState* record, List* expectedTLIs, T return false; } +static bool DispatchUBTree3Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) +{ + /* pcr not currently support extreme rto */ + return false; +} + +static bool DispatchUBTree4Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) +{ + /* pcr not currently support extreme rto */ + return false; +} + /* Run from the dispatcher thread. */ static bool DispatchGinRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) { diff --git a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp index e07f58120ef0094ea7efadc2ef50ad7142b367bf..9824752a2a3acb8792d8e1e8154a60af468d7c09 100644 --- a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp @@ -164,6 +164,8 @@ static bool DispatchRepOriginRecord(XLogReaderState *record, List *expectedTLIs, static bool DispatchUBTreeRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); static bool DispatchUBTree2Record(XLogReaderState* record, List* expectedTLIs, TimestampTz recordXTime); +static bool DispatchUBTree3Record(XLogReaderState* record, List* expectedTLIs, TimestampTz recordXTime); +static bool DispatchUBTree4Record(XLogReaderState* record, List* expectedTLIs, TimestampTz recordXTime); static bool RmgrRecordInfoValid(XLogReaderState *record, uint8 minInfo, uint8 maxInfo); static bool RmgrGistRecordInfoValid(XLogReaderState *record, uint8 minInfo, uint8 maxInfo); @@ -231,6 +233,10 @@ static const RmgrDispatchData g_dispatchTable[RM_MAX_ID + 1] = { { DispatchLogicalDDLMsgRecord, RmgrRecordInfoValid, RM_LOGICALDDLMSG_ID, XLOG_LOGICAL_DDL_MESSAGE, XLOG_LOGICAL_DDL_MESSAGE }, { DispatchGenericRecord, RmgrRecordInfoValid, RM_GENERIC_ID, XLOG_GENERIC_LOG, XLOG_GENERIC_LOG }, + { DispatchUBTree3Record, RmgrRecordInfoValid, RM_UBTREE3_ID, XLOG_UBTREE3_INSERT_PCR_INTERNAL, + XLOG_UBTREE3_INSERT_PCR_META }, + { DispatchUBTree4Record, RmgrRecordInfoValid, RM_UBTREE4_ID, XLOG_UBTREE4_UNLINK_PAGE, + XLOG_UBTREE4_MARK_PAGE_HALFDEAD }, }; const int REDO_WAIT_SLEEP_TIME = 5000; /* 5ms */ @@ -1340,6 +1346,18 @@ static bool DispatchUBTree2Record(XLogReaderState* record, List* expectedTLIs, T return false; } +static bool DispatchUBTree3Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) +{ + /* pcr not currently support ondemand extreme rto */ + return false; +} + +static bool DispatchUBTree4Record(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) +{ + /* pcr not currently support ondemand extreme rto */ + return false; +} + /* Run from the dispatcher thread. */ static bool DispatchGinRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) { diff --git a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp index eaf1e53e736f6a9b80745a72f6d45e6c1ba0158e..63b8f3301fbd2f07ac2c2bcbe7c93a0160436e6a 100755 --- a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp @@ -232,10 +232,6 @@ static const RmgrDispatchData g_dispatchTable[RM_MAX_ID + 1] = { { DispatchUBTreeRecord, RmgrRecordInfoValid, RM_UBTREE_ID, XLOG_UBTREE_INSERT_LEAF, XLOG_UBTREE_PRUNE_PAGE}, { DispatchUBTree2Record, RmgrRecordInfoValid, RM_UBTREE2_ID, XLOG_UBTREE2_SHIFT_BASE, XLOG_UBTREE2_FREEZE }, - { DispatchUBTree3Record, RmgrRecordInfoValid, RM_UBTREE3_ID, XLOG_UBTREE3_INSERT_PCR_INTERNAL, - XLOG_UBTREE3_INSERT_PCR_META }, - { DispatchUBTree4Record, RmgrRecordInfoValid, RM_UBTREE4_ID, XLOG_UBTREE4_UNLINK_PAGE, - XLOG_UBTREE4_MARK_PAGE_HALFDEAD }, { DispatchSegpageSmgrRecord, RmgrRecordInfoValid, RM_SEGPAGE_ID, XLOG_SEG_ATOMIC_OPERATION, XLOG_SEG_NEW_PAGE }, { DispatchRepOriginRecord, RmgrRecordInfoValid, RM_REPLORIGIN_ID, XLOG_REPLORIGIN_SET, XLOG_REPLORIGIN_DROP }, @@ -244,6 +240,10 @@ static const RmgrDispatchData g_dispatchTable[RM_MAX_ID + 1] = { { DispatchLogicalDDLMsgRecord, RmgrRecordInfoValid, RM_LOGICALDDLMSG_ID, XLOG_LOGICAL_DDL_MESSAGE, XLOG_LOGICAL_DDL_MESSAGE }, { DispatchGenericRecord, RmgrRecordInfoValid, RM_GENERIC_ID, XLOG_GENERIC_LOG, XLOG_GENERIC_LOG }, + { DispatchUBTree3Record, RmgrRecordInfoValid, RM_UBTREE3_ID, XLOG_UBTREE3_INSERT_PCR_INTERNAL, + XLOG_UBTREE3_INSERT_PCR_META }, + { DispatchUBTree4Record, RmgrRecordInfoValid, RM_UBTREE4_ID, XLOG_UBTREE4_UNLINK_PAGE, + XLOG_UBTREE4_MARK_PAGE_HALFDEAD }, }; /* Run from the dispatcher and txn worker thread. */ diff --git a/src/include/access/rmgrlist.h b/src/include/access/rmgrlist.h index cb6c487dbef94b8b21f56657b72a4a4e98140b35..a829be3ca1eaaba612303eacfca25e07801f9efb 100644 --- a/src/include/access/rmgrlist.h +++ b/src/include/access/rmgrlist.h @@ -74,10 +74,6 @@ PG_RMGR(RM_UNDOACTION_ID, "UndoAction", undo::UndoXlogRollbackFinishRedo, undo:: PG_RMGR(RM_UBTREE_ID, "UBtree", UBTreeRedo, UBTreeDesc, UBTreeXlogStartup, UBTreeXlogCleanup, UBTreeSafeRestartPoint, NULL, NULL, ubtree_type_name) PG_RMGR(RM_UBTREE2_ID, "UBtree2", UBTree2Redo, UBTree2Desc, NULL, NULL, NULL, NULL, NULL, ubtree2_type_name) -PG_RMGR(RM_UBTREE3_ID, "UBtree3", UBTree3Redo, UBTree3Desc, NULL, NULL, NULL, UBTreePCRRollback, - NULL, ubtree3_type_name) -PG_RMGR(RM_UBTREE4_ID, "UBtree4", UBTree4Redo, UBTree4Desc, NULL, NULL, NULL, NULL, - NULL, ubtree4_type_name) PG_RMGR(RM_SEGPAGE_ID, "SegpageStorage", segpage_smgr_redo, segpage_smgr_desc, NULL, NULL, NULL, NULL, NULL, \ segpage_smgr_type_name) PG_RMGR(RM_REPLORIGIN_ID, "ReplicationOrigin", replorigin_redo, replorigin_desc, NULL, NULL, NULL, NULL, NULL, \ @@ -87,3 +83,7 @@ PG_RMGR(RM_COMPRESSION_REL_ID, "CompressionRelation", CfsShrinkRedo, CfsShrinkDe PG_RMGR(RM_LOGICALDDLMSG_ID, "LogicalDDLMessage", logicalddlmsg_redo, logicalddlmsg_desc, NULL, NULL, NULL, NULL, NULL, \ logicalddlmsg_type_name) PG_RMGR(RM_GENERIC_ID, "Generic", generic_redo, generic_desc, NULL, NULL, NULL, NULL, NULL, NULL) +PG_RMGR(RM_UBTREE3_ID, "UBtree3", UBTree3Redo, UBTree3Desc, NULL, NULL, NULL, UBTreePCRRollback, + NULL, ubtree3_type_name) +PG_RMGR(RM_UBTREE4_ID, "UBtree4", UBTree4Redo, UBTree4Desc, NULL, NULL, NULL, NULL, \ + NULL, ubtree4_type_name)