Re: Improve behavior of concurrent ANALYZE/VACUUM

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: "Bossart, Nathan" <bossartn@amazon.com>
Cc: Postgres hackers <pgsql-hackers@postgresql.org>, "horiguchi.kyotaro@lab.ntt.co.jp" <horiguchi.kyotaro@lab.ntt.co.jp>
Date: 2018-08-22T05:36:37Z
Lists: pgsql-hackers
On Wed, Aug 22, 2018 at 02:17:44AM +0000, Bossart, Nathan wrote:
> I think this is doable by locking the table in SHARE mode.  That won't
> conflict with the AccessShareLock that expand_vacuum_rel() obtains,
> but it will conflict with the ShareUpdateExclusiveLock or
> AccessExclusiveLock that vacuum_rel() takes.

Good point.  Still is that really worth adding?  This implies a test
which has at least two roles, one switching the ownership to the other
and do so back-and-forth.  At least that should be on a different
isolation spec file to not complicate the first one.
--
Michael

Commits

  1. Improve VACUUM and ANALYZE by avoiding early lock queue

  2. Add more tests for VACUUM skips with partitioned tables

  3. Add regression tests for VACUUM and ANALYZE with relation skips