diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2010-04-22 02:15:45 +0000 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2010-04-22 02:15:45 +0000 |
commit | 781ec6b75d6f4e89f103f44a31465383ac13c917 (patch) | |
tree | 3cd2cd1fcb4ef00cf31c4a00c4293eae77eeb1f2 /src/backend/commands/vacuumlazy.c | |
parent | 95a777c612c6dcebe2f17c57c35f7e7c93714484 (diff) |
Further reductions in Hot Standby conflict processing. These
come from the realistion that HEAP2_CLEAN records don't
always remove user visible data, so conflict processing for
them can be skipped. Confirm validity using Assert checks,
clarify circumstances under which we log heap_cleanup_info
records. Tuning arises from bug fixing of earlier safety
check failures.
Diffstat (limited to 'src/backend/commands/vacuumlazy.c')
-rw-r--r-- | src/backend/commands/vacuumlazy.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index 0b4047657ea..8a135f34af5 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -29,7 +29,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.134 2010/04/21 19:53:24 sriggs Exp $ + * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.135 2010/04/22 02:15:45 sriggs Exp $ * *------------------------------------------------------------------------- */ @@ -274,12 +274,11 @@ vacuum_log_cleanup_info(Relation rel, LVRelStats *vacrelstats) if (rel->rd_istemp || !XLogIsNeeded()) return; - if (vacrelstats->tuples_deleted > 0) - { - Assert(TransactionIdIsValid(vacrelstats->latestRemovedXid)); - + /* + * No need to write the record at all unless it contains a valid value + */ + if (TransactionIdIsValid(vacrelstats->latestRemovedXid)) (void) log_heap_cleanup_info(rel->rd_node, vacrelstats->latestRemovedXid); - } } /* @@ -687,7 +686,6 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats, * Forget the now-vacuumed tuples, and press on, but be careful * not to reset latestRemovedXid since we want that value to be valid. */ - Assert(TransactionIdIsValid(vacrelstats->latestRemovedXid)); vacrelstats->num_dead_tuples = 0; vacuumed_pages++; } |