Skip to content

Commit c71dbee

Browse files
author
Alexander Korotkov
committed
Revert buffer manager changes.
1 parent 3f287d0 commit c71dbee

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
volatile BufferDesc *bufHdr;
152-
uint32 state;
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)