On 2/1/16 7:20 PM, Peter Eisentraut wrote:
That's probably right.  Even with autovacuum on, the statistics for
shared catalogs do not appear as updated right away.  That is, if you
run VACUUM and then look at pg_stat_sys_tables right away, you will see
the stats for shared catalogs to be slightly out of date until the
minutely autovacuum check causes them to update.

So the problem exists in general, but the autovacuum launcher papers
over it every minute.

I suspect the issue is in backend_read_statsfile(). Presumably the if just needs a call to AutoVacuumingActive() added:

        /*
         * Autovacuum launcher wants stats about all databases, but a shallow 
read
         * is sufficient.
         */
        if (IsAutoVacuumLauncherProcess())
                pgStatDBHash = pgstat_read_statsfiles(InvalidOid, false, false);
        else
                pgStatDBHash = pgstat_read_statsfiles(MyDatabaseId, false, 
true);

The interesting thing is that we always start the launcher one time, to protect against wraparound, but apparently that path doesn't call anything that calls backend_read_statsfile() (which is static).
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to