开启极致RTTO

This commit is contained in:
hanlizhu
2024-06-04 21:45:17 +08:00
committed by yaoxin
parent 19fe6c6155
commit 918ec73ed2
2 changed files with 11 additions and 20 deletions

View File

@ -2572,10 +2572,6 @@ ObjectAddress DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, Object
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UStore tables do not support compression.")));
}
if (g_instance.attr.attr_storage.recovery_parse_workers > 1) {
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UStore tables do not support extreme rto.")));
}
ForbidToSetOptionsForRowTbl(stmt->options);
ForbidToSetOptionsForUstoreTbl(stmt->options);
} else {
@ -27194,11 +27190,6 @@ static void ExecUndoActionsPageForRelation(Relation rel)
return;
}
for (BlockNumber blkno = 0; blkno < srcHeapBlocks; blkno ++) {
ExecuteUndoActionsPageForPartition(rel, rel->rd_smgr, MAIN_FORKNUM, blkno,
blkno, ROLLBACK_OP_FOR_EXCHANGE_PARTITION);
}
RelationCloseSmgr(rel);
}

View File

@ -163,7 +163,7 @@ static UndoRecPtr PrepareAndInsertUndoRecordForInsertRedo(XLogReaderState *recor
errmsg(UNDOFORMAT("redo:undoptr=%lu, xid %lu, partoid=%u, spcoid=%u."),
urecptr, xid, *partitionOid, targetNode.spcNode)));
/* recover undo record */
Assert(urecptr == xlundohdr->urecptr);
Assert(UNDO_PTR_GET_OFFSET(urecptr) == UNDO_PTR_GET_OFFSET(xlundohdr->urecptr));
undorec->SetOffset(xlrec->offnum);
if (!skipInsert) {
/* Insert the Undo record into the undo store */
@ -259,7 +259,7 @@ static void PerformInsertRedoAction(XLogReaderState *record, const Buffer buf, c
void UHeapXlogInsert(XLogReaderState *record)
{
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
RelFileNode targetNode;
BlockNumber blkno = InvalidBlockNumber;
XLogRedoAction action;
@ -445,7 +445,7 @@ static void PerformDeleteRedoAction(XLogReaderState *record, UHeapTupleData *utu
static void UHeapXlogDelete(XLogReaderState *record)
{
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
UHeapTupleData utup;
RelFileNode targetNode;
BlockNumber blkno = InvalidBlockNumber;
@ -494,7 +494,7 @@ static void UHeapXlogFreezeTdSlot(XLogReaderState *record)
XLogRecPtr lsn = record->EndRecPtr;
XlUHeapFreezeTdSlot *xlrec = (XlUHeapFreezeTdSlot *)XLogRecGetData(record);
int *frozenSlots = (int *)((char *)xlrec + SizeOfUHeapFreezeTDSlot);
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
Page page;
XLogRedoAction action;
RelFileNode rnode = ((RelFileNode) {0, 0, 0, -1});
@ -556,7 +556,7 @@ static void UHeapXlogInvalidTdSlot(XLogReaderState *record)
XLogRecPtr lsn = record->EndRecPtr;
uint16 *nCompletedSlots = (uint16 *)XLogRecGetData(record);
int *completedXactSlots = (int *)((char *)nCompletedSlots + sizeof(uint16));
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
Page page;
XLogRedoAction action;
int slotNo = 0;
@ -707,7 +707,7 @@ static void PerformCleanRedoAction(XLogReaderState *record, RedoBufferInfo *buff
static void UHeapXlogClean(XLogReaderState *record)
{
XlUHeapClean *xlrec = (XlUHeapClean *)XLogRecGetData(record);
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
Size freespace = 0;
RelFileNode rnode = ((RelFileNode) {0, 0, 0, -1});
BlockNumber blkno = InvalidBlockNumber;
@ -1269,7 +1269,7 @@ static Size PerformUpdateNewRedoAction(XLogReaderState *record, UpdateRedoBuffer
static void UHeapXlogUpdate(XLogReaderState *record)
{
XlUndoHeader *xlnewundohdr = NULL;
UpdateRedoBuffers buffers;
UpdateRedoBuffers buffers = { 0 };
RelFileNode rnode = {0};
BlockNumber oldblk = InvalidBlockNumber;
BlockNumber newblk = InvalidBlockNumber;
@ -1480,7 +1480,7 @@ static UndoRecPtr PrepareAndInsertUndoRecordForMultiInsertRedo(XLogReaderState *
* undo should be inserted at same location as it was during the
* actual insert (DO operation).
*/
Assert((*urecvec)[0]->Urp() == xlundohdr->urecptr);
Assert(UNDO_PTR_GET_OFFSET((*urecvec)[0]->Urp()) == UNDO_PTR_GET_OFFSET(xlundohdr->urecptr));
InsertPreparedUndo(urecvec, lsn);
}
@ -1631,7 +1631,7 @@ static void UHeapXlogMultiInsert(XLogReaderState *record)
{
RelFileNode rnode;
BlockNumber blkno = InvalidBlockNumber;
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
XlUHeapMultiInsert *xlrec = NULL;
XLogRedoAction action = BLK_NOTFOUND;
UHeapFreeOffsetRanges *ufreeOffsetRanges = NULL;
@ -1673,7 +1673,7 @@ static void UHeapXlogMultiInsert(XLogReaderState *record)
static void UHeapXlogBaseShift(XLogReaderState *record)
{
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
XLogRecPtr lsn = record->EndRecPtr;
BlockNumber blkno = InvalidBlockNumber;
URedoVerifyParams verifyParams;
@ -1700,7 +1700,7 @@ static void UHeapXlogBaseShift(XLogReaderState *record)
static void UHeapXlogExtendTDSlot(XLogReaderState *record)
{
RedoBufferInfo buffer;
RedoBufferInfo buffer = { 0 };
XLogRecPtr lsn = record->EndRecPtr;
Page page;
XLogRedoAction action = (XLogRedoAction)-1;