diff options
author | Michael Paquier | 2012-05-24 08:32:56 +0000 |
---|---|---|
committer | Michael Paquier | 2012-05-24 08:41:12 +0000 |
commit | 39330d67e4c6a6a3ce8fe3abea1d60ca645ed1ff (patch) | |
tree | 9683460755e55fe7fcf85ad5d296546bb948d7b6 /src/include/postgres.h | |
parent | e1df051ccd64fa9eee5562f8a64be7007003120d (diff) |
Fix for bug 3525691: autovacuum process issue
This commit fixes 2 issues:
1) On Coordinator, autovacuum processes were using local snapshots
while it needs to fetch global snapshot data from GTM. This made several
PostgreSQL internal processes going mad with visibility like statistics or
catalogs in an environment using a lot of DDL.
2) On Datanodes, autovacuum non-analyze processes did not fetch a global
transaction ID from GTM and this transaction ID was not included in global
snapshot. Hence, global data consistency and visibility was compromised
on local nodes. This issue made autovacuum and pg_toast going crazy if the
system was put under heavy load (transaction timeout occuring).
It is believed that this bug is here since Postgres-XC 0.9.4, far before the
code was merged with PostgreSQL 9.1, and was causing numerous issues with
long and short-time runs.
For a reason I do not completely understand, this bug has become really easy
to reproduce since some race conditions in pg_toast code (tuptoaster.c) have
been fixed by Tom Lane in 9.1 stable.
Diffstat (limited to 'src/include/postgres.h')
0 files changed, 0 insertions, 0 deletions