Re: VACUUM touching file but not updating relation

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Thom Brown <thom(at)linux(dot)com>
Cc: PGSQL Mailing List <pgsql-general(at)postgresql(dot)org>, pgsql-hackers(at)postgresql(dot)org, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: VACUUM touching file but not updating relation
Date: 2011-11-11 23:28:25
Message-ID: 13875.1321054105@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Thom Brown <thom(at)linux(dot)com> writes:
> On 11 November 2011 00:55, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Thom Brown <thom(at)linux(dot)com> writes:
>>> I just noticed that the VACUUM process touches a lot of relations
>>> (affects mtime) but for one file I looked at, it didn't change. This
>>> doesn't always happen, and many relations aren't touched at all.

>> No immmediate ideas as to why the mtime would change if the file
>> contents didn't. It seems like there must be a code path that marked
>> a buffer dirty without having changed it, but we're usually pretty
>> careful about that.

> I checked all files where the time stamp of the file had changed, but
> had the same MD5 sum. I used the list in the query you mentioned and
> get: [ mostly indexes ]

Hmm, is this on a hot standby master?

I observe that _bt_delitems_vacuum() unconditionally dirties the page
and writes a WAL record, whether it has anything to do or not; and that
if XLogStandbyInfoActive() then btvacuumscan will indeed call it despite
there being (probably) nothing useful to do. Seems like that could be
improved. The comment explaining why it's necessary to do that doesn't
make any sense to me, either.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thom Brown 2011-11-12 00:08:35 Re: VACUUM touching file but not updating relation
Previous Message Jerry Levan 2011-11-11 22:27:49 dblink build problem…must be a lesson here...

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2011-11-11 23:48:55 Re: Allow substitute allocators for PGresult.
Previous Message Tom Lane 2011-11-11 22:04:59 Re: why do we need two snapshots per query?