aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/bufmgr.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-05-27 03:50:39 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-05-27 03:50:39 +0000
commit77947c51c08179b8bc12347a7fbcb2c8d7908302 (patch)
tree0a306ea177817fdadc0e4421b6d8dd212c11e6e3 /src/backend/storage/buffer/bufmgr.c
parentcadb78330eedceafeda99bf12ac690cda773be62 (diff)
downloadpostgresql-77947c51c08179b8bc12347a7fbcb2c8d7908302.tar.gz
postgresql-77947c51c08179b8bc12347a7fbcb2c8d7908302.zip
Fix up pgstats counting of live and dead tuples to recognize that committed
and aborted transactions have different effects; also teach it not to assume that prepared transactions are always committed. Along the way, simplify the pgstats API by tying counting directly to Relations; I cannot detect any redeeming social value in having stats pointers in HeapScanDesc and IndexScanDesc structures. And fix a few corner cases in which counts might be missed because the relation's pgstat_info pointer hadn't been set.
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r--src/backend/storage/buffer/bufmgr.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 9f4876a6050..e2cfc870e2e 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.218 2007/05/02 23:34:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.219 2007/05/27 03:50:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,12 +88,6 @@ static bool IsForInput;
/* local state for LockBufferForCleanup */
static volatile BufferDesc *PinCountWaitBuf = NULL;
-/*
- * Global statistics for the bgwriter. The contents of this variable
- * only makes sense in the bgwriter process.
- */
-extern PgStat_MsgBgWriter BgWriterStats;
-
static Buffer ReadBuffer_common(Relation reln, BlockNumber blockNum,
bool zeroPage);
@@ -174,7 +168,7 @@ ReadBuffer_common(Relation reln, BlockNumber blockNum, bool zeroPage)
if (isExtend)
blockNum = smgrnblocks(reln->rd_smgr);
- pgstat_count_buffer_read(&reln->pgstat_info, reln);
+ pgstat_count_buffer_read(reln);
if (isLocalBuf)
{
@@ -204,7 +198,7 @@ ReadBuffer_common(Relation reln, BlockNumber blockNum, bool zeroPage)
if (!isExtend)
{
/* Just need to update stats before we exit */
- pgstat_count_buffer_hit(&reln->pgstat_info, reln);
+ pgstat_count_buffer_hit(reln);
if (VacuumCostActive)
VacuumCostBalance += VacuumCostPageHit;