Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc71dbee

Browse files
author
Alexander Korotkov
committed
Revert buffer manager changes.
1 parent3f287d0 commitc71dbee

File tree

6 files changed

+214
-361
lines changed

6 files changed

+214
-361
lines changed

‎contrib/pg_buffercache/pg_buffercache_pages.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,28 +149,27 @@ pg_buffercache_pages(PG_FUNCTION_ARGS)
149149
for (i=0;i<NBuffers;i++)
150150
{
151151
volatileBufferDesc*bufHdr;
152-
uint32state;
153152

154153
bufHdr=GetBufferDescriptor(i);
155154
/* Lock each buffer header before inspecting. */
156-
state=LockBufHdr(bufHdr);
155+
LockBufHdr(bufHdr);
157156

158157
fctx->record[i].bufferid=BufferDescriptorGetBuffer(bufHdr);
159158
fctx->record[i].relfilenode=bufHdr->tag.rnode.relNode;
160159
fctx->record[i].reltablespace=bufHdr->tag.rnode.spcNode;
161160
fctx->record[i].reldatabase=bufHdr->tag.rnode.dbNode;
162161
fctx->record[i].forknum=bufHdr->tag.forkNum;
163162
fctx->record[i].blocknum=bufHdr->tag.blockNum;
164-
fctx->record[i].usagecount=BUF_STATE_GET_USAGECOUNT(state);
165-
fctx->record[i].pinning_backends=BUF_STATE_GET_REFCOUNT(state);
163+
fctx->record[i].usagecount=bufHdr->usage_count;
164+
fctx->record[i].pinning_backends=bufHdr->refcount;
166165

167-
if (state&BM_DIRTY)
166+
if (bufHdr->flags&BM_DIRTY)
168167
fctx->record[i].isdirty= true;
169168
else
170169
fctx->record[i].isdirty= false;
171170

172171
/* Note if the buffer is valid, and has storage created */
173-
if ((state&BM_VALID)&& (state&BM_TAG_VALID))
172+
if ((bufHdr->flags&BM_VALID)&& (bufHdr->flags&BM_TAG_VALID))
174173
fctx->record[i].isvalid= true;
175174
else
176175
fctx->record[i].isvalid= false;

‎src/backend/storage/buffer/buf_init.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,13 @@ InitBufferPool(void)
9696
BufferDesc*buf=GetBufferDescriptor(i);
9797

9898
CLEAR_BUFFERTAG(buf->tag);
99-
100-
pg_atomic_init_u32(&buf->state,0);
99+
buf->flags=0;
100+
buf->usage_count=0;
101+
buf->refcount=0;
101102
buf->wait_backend_pid=0;
102103

104+
SpinLockInit(&buf->buf_hdr_lock);
105+
103106
buf->buf_id=i;
104107

105108
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp