in GetReplyingRecPtr pick bigger between curReplayingReadRecPtr and lastReplayedEndRecPtr;

This commit is contained in:
movead
2023-09-27 15:56:28 +08:00
parent c0aa776fee
commit 49cb438b8f

View File

@ -1025,8 +1025,15 @@ XLogRecPtr GetCompletedRecPtr(PageRedoWorker *worker)
XLogRecPtr GetReplyingRecPtr(PageRedoWorker *worker)
{
XLogRecPtr curReplayingReadRecPtr;
XLogRecPtr lastReplayedEndRecPtr;
XLogRecPtr result;
pg_read_barrier();
return pg_atomic_read_u64(&worker->curReplayingReadRecPtr);
curReplayingReadRecPtr = pg_atomic_read_u64(&worker->curReplayingReadRecPtr);
lastReplayedEndRecPtr = pg_atomic_read_u64(&worker->lastReplayedEndRecPtr);
return lastReplayedEndRecPtr > curReplayingReadRecPtr ? lastReplayedEndRecPtr : curReplayingReadRecPtr;
}
/* automic write for lastReplayedReadRecPtr and lastReplayedEndRecPtr */