pgsql: Ensure that backends see up-to-date statistics for shared catalo

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Ensure that backends see up-to-date statistics for shared catalo
Дата
Msg-id E1b5gfT-000367-Jj@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Ensure that backends see up-to-date statistics for shared catalogs.

Ever since we split the statistics collector's reports into per-database
files (commit 187492b6c2e8cafc), backends have been seeing stale statistics
for shared catalogs.  This is because the inquiry message only prompts the
collector to write the per-database file for the requesting backend's own
database.  Stats for shared catalogs are in a separate file for "DB 0",
which didn't get updated.

In normal operation this was partially masked by the fact that the
autovacuum launcher would send an inquiry message at least once per
autovacuum_naptime that asked for "DB 0"; so the shared-catalog stats would
never be more than a minute out of date.  However the problem becomes very
obvious with autovacuum disabled, as reported by Peter Eisentraut.

To fix, redefine the semantics of inquiry messages so that both the
specified DB and DB 0 will be dumped.  (This might seem a bit inefficient,
but we have no good way to know whether a backend's transaction will look
at shared-catalog stats, so we have to read both groups of stats whenever
we request stats.  Sending two inquiry messages would definitely not be
better.)

Back-patch to 9.3 where the bug was introduced.

Report: <56AD41AC.1030509@gmx.net>

Branch
------
REL9_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/4b612a78fdb501f79c768f65075df167477a5017

Modified Files
--------------
src/backend/postmaster/pgstat.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Ensure that backends see up-to-date statistics for shared catalo
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Ensure that backends see up-to-date statistics for shared catalo