Re: VACUUM touching file but not updating relation - Mailing list pgsql-general

From Tom Lane
Subject Re: VACUUM touching file but not updating relation
Date
Msg-id 13875.1321054105@sss.pgh.pa.us
Whole thread Raw
In response to Re: VACUUM touching file but not updating relation  (Thom Brown <thom@linux.com>)
Responses Re: VACUUM touching file but not updating relation  (Thom Brown <thom@linux.com>)
List pgsql-general
Thom Brown <thom@linux.com> writes:
> On 11 November 2011 00:55, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Thom Brown <thom@linux.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

pgsql-general by date:

Previous
From: Jerry Levan
Date:
Subject: dblink build problem…must be a lesson here...
Next
From: Thom Brown
Date:
Subject: Re: VACUUM touching file but not updating relation