Contradicting information on the "vacuum threshold"

From: Erwin Brandstetter <brsaweda(at)gmail(dot)com>
To: pgsql-docs(at)postgresql(dot)org
Subject: Contradicting information on the "vacuum threshold"
Date: 2017-08-11 21:54:50
Message-ID: CAGHENJ53HMDAWn64g9hDW5Rg-UtFvExu4VoDhjYKS-CSCmOSTw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On the one hand the manual for autovacuum_analyze_threshold claims here:

https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-ANALYZE-THRESHOLD

> Specifies the minimum number of inserted, updated or deleted tuples
needed to trigger an ANALYZE in any one table.

Similar in pg_settings.short_desc:

> Minimum number of tuple inserts, updates, or deletes prior to analyze.

"Minimum" indicates "row_count >= vacuum threshold". (Well "prior" makes
that less clear ..)

On the other hand the manual explains here:

https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM

> Otherwise, if the number of tuples obsoleted since the last VACUUM
exceeds the "vacuum threshold", the table is vacuumed.

"Exceeds" indicates "row_count > vacuum threshold".

Actual test results seem to support "row_count > vacuum threshold". See
test case here:

https://dba.stackexchange.com/questions/181960/tiny-table-causes-extreme-performance-degradation-fixed-by-forced-vacuum-why/183283#183283

I suggest to either clarify the manual or change the code to actually use
>= instead of > ... and update the explanation for autovacuum accordingly.

Same for autovacuum_vacuum_threshold.

Regards
Erwin Brandstetter

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message John Ekins 2017-08-12 21:47:00 Re: The reference to 'atacontrol' on FreeBSD is outdated.
Previous Message Peter Eisentraut 2017-08-11 20:43:34 Re: Improve docuemntation for cidr/inet