From: | Vik Fearing <vik(dot)fearing(at)2ndquadrant(dot)com> |
---|---|
To: | Andrew Gierth <rhodiumtoad(at)postgresql(dot)org> |
Cc: | pgsql-committers(at)postgresql(dot)org |
Subject: | Re: pgsql: Avoid having vacuum set reltuples to 0 on non-empty relations in |
Date: | 2017-03-16 22:44:49 |
Message-ID: | CAJguA1SRBxPVJEs3knUnpvRcgzLTsmf2+mSXC-oRhXZJn+5pgw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
On Thu, Mar 16, 2017 at 11:39 PM, Andrew Gierth <rhodiumtoad(at)postgresql(dot)org>
wrote:
> Avoid having vacuum set reltuples to 0 on non-empty relations in the
> presence of page pins, which leads to serious estimation errors in the
> planner. This particularly affects small heavily-accessed tables,
> especially where locking (e.g. from FK constraints) forces frequent
> vacuums for mxid cleanup.
>
> Fix by keeping separate track of pages whose live tuples were actually
> counted vs. pages that were only scanned for freezing purposes. Thus,
> reltuples can only be set to 0 if all pages of the relation were
> actually counted.
>
> Backpatch to all supported versions.
>
> Per bug #14057 from Nicolas Baccelli, analyzed by me.
>
> Discussion: https://postgr.es/m/20160331103739.8956.94469@
> wrigleys.postgresql.org
>
Congrats on your first commit!
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2017-03-16 23:01:05 | pgsql: psql: Add completion for \help DROP|ALTER |
Previous Message | Andrew Gierth | 2017-03-16 22:39:31 | pgsql: Avoid having vacuum set reltuples to 0 on non-empty relations in |