!4230 GetReplyingRecPtr()函数内同时考虑curReplayingReadRecPtr和lastReplayedEndRecPtr

Merge pull request !4230 from Movead/master
This commit is contained in:
opengauss_bot
2023-09-27 08:53:34 +00:00
committed by Gitee

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 */