删除资源池化LockBuffer的递增sleep retry

This commit is contained in:
gentle_hu
2024-06-20 19:04:18 +08:00
committed by yaoxin
parent c3bc23df69
commit 9044cf492e
3 changed files with 1 additions and 28 deletions

View File

@ -995,15 +995,6 @@ void SSMarkBufferDirtyForERTO(RedoBufferInfo* bufferinfo)
}
}
const int ss_buf_retry_threshold = 5;
long SSGetBufSleepTime(int retry_times)
{
if (retry_times < ss_buf_retry_threshold) {
return 5000L * retry_times;
}
return SS_BUF_MAX_WAIT_TIME;
}
bool SSLWLockAcquireTimeout(LWLock* lock, LWLockMode mode)
{
bool get_lock = false;

View File

@ -6250,7 +6250,6 @@ void LockBuffer(Buffer buffer, int mode)
{
volatile BufferDesc *buf = NULL;
bool need_update_lockid = false;
int dms_retry_times = 0;
Assert(BufferIsValid(buffer));
if (BufferIsLocal(buffer)) {
@ -6315,23 +6314,7 @@ retry:
g_instance.dms_cxt.SSRecoveryInfo.recovery_trapped_in_page_request = true;
}
if (!DmsCheckBufAccessible()) {
dms_retry_times = 1;
} else {
dms_retry_times++;
}
long sleep_time = SSGetBufSleepTime(dms_retry_times);
if (sleep_time == SS_BUF_MAX_WAIT_TIME && !SS_IN_REFORM) {
volatile BufferTag *tag = &buf->tag;
int output_backup = t_thrd.postgres_cxt.whereToSendOutput;
t_thrd.postgres_cxt.whereToSendOutput = DestNone;
ereport(WARNING, (errmodule(MOD_DMS), (errmsg("[SS buf][%u/%u/%u/%d %d-%u] LockBuffer, request buf timeout, "
"buf_id:%d",
tag->rnode.spcNode, tag->rnode.dbNode, tag->rnode.relNode, tag->rnode.bucketNode,
tag->forkNum, tag->blockNum, buf->buf_id))));
t_thrd.postgres_cxt.whereToSendOutput = output_backup;
}
pg_usleep(sleep_time);
pg_usleep(5000L);
goto retry;
}
}

View File

@ -72,7 +72,6 @@ bool SSSegRead(SMgrRelation reln, ForkNumber forknum, char *buffer);
bool DmsCheckBufAccessible();
bool SSHelpFlushBufferIfNeed(BufferDesc* buf_desc);
void SSMarkBufferDirtyForERTO(RedoBufferInfo* bufferinfo);
long SSGetBufSleepTime(int retry_times);
SMGR_READ_STATUS SmgrNetPageCheckRead(Oid spcNode, Oid dbNode, Oid relNode, ForkNumber forkNum,
BlockNumber blockNo, char *blockbuf);
bool SSPinBuffer(BufferDesc *buf_desc);