From c6746d21ae209382170700f8fe1f61ef063859d7 Mon Sep 17 00:00:00 2001 From: Kirk Jamison Date: Mon, 19 Oct 2020 07:34:39 +0000 Subject: [PATCH v26 4/4] For non-recovery performance test case purposes only. --- src/backend/catalog/storage.c | 6 +++--- src/backend/commands/vacuum.c | 2 +- src/backend/storage/buffer/bufmgr.c | 5 +++-- src/backend/storage/smgr/smgr.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c index 4dc2ba8..32d7ba8 100644 --- a/src/backend/catalog/storage.c +++ b/src/backend/catalog/storage.c @@ -289,9 +289,9 @@ RelationTruncate(Relation rel, BlockNumber nblocks) /* * Make sure smgr_targblock etc aren't pointing somewhere past new end */ - rel->rd_smgr->smgr_targblock = InvalidBlockNumber; - for (int i = 0; i <= MAX_FORKNUM; ++i) - rel->rd_smgr->smgr_cached_nblocks[i] = InvalidBlockNumber; + //rel->rd_smgr->smgr_targblock = InvalidBlockNumber; + //for (int i = 0; i <= MAX_FORKNUM; ++i) + // rel->rd_smgr->smgr_cached_nblocks[i] = InvalidBlockNumber; /* Prepare for truncation of MAIN fork of the relation */ forks[nforks] = MAIN_FORKNUM; diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index ddeec87..b6162f0 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -343,7 +343,7 @@ vacuum(List *relations, VacuumParams *params, { MemoryContext old_context = MemoryContextSwitchTo(vac_context); - bstrategy = GetAccessStrategy(BAS_VACUUM); + bstrategy = GetAccessStrategy(BAS_NORMAL); MemoryContextSwitchTo(old_context); } vac_strategy = bstrategy; diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index fb6ba94..15c14f6 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -3004,7 +3004,7 @@ DropRelFileNodeBuffers(SMgrRelation smgr_reln, ForkNumber *forkNum, /* * Get the total number of to-be-invalidated blocks of a relation as well - * as the total nblocks for a given fork. The cached value returned by + * as the total nblocks for a given fork. The cached value returned by * smgrnblocks could be smaller than the actual number of existing buffers * of the file. This is caused by buggy Linux kernels that might not have * accounted for the recent write. Give up the optimization if the block @@ -3012,12 +3012,13 @@ DropRelFileNodeBuffers(SMgrRelation smgr_reln, ForkNumber *forkNum, */ for (i = 0; i < nforks; i++) { - /* Get the total nblocks for a relation's fork */ + /* Get the number of blocks for a relation's fork */ nForkBlocks[i] = smgrnblocks(smgr_reln, forkNum[i], &accurate); if (!accurate) break; + /* Get the number of blocks to be invalidated */ nBlocksToInvalidate += (nForkBlocks[i] - firstDelBlock[i]); } diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 6b8528e..f57916f 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -564,7 +564,7 @@ smgrnblocks(SMgrRelation reln, ForkNumber forknum, bool *accurate) * This is caused by lseek of buggy Linux kernels that might not have * accounted for the recent write. */ - if (InRecovery && reln->smgr_cached_nblocks[forknum] != InvalidBlockNumber) + if (reln->smgr_cached_nblocks[forknum] != InvalidBlockNumber) { if (accurate != NULL) *accurate = true; -- 1.8.3.1