Use maintenance_io_concurrency for ANALYZE prefetch

When prefetching pages for ANALYZE, we should be using
maintenance_io_concurrenty (by calling
get_tablespace_maintenance_io_concurrency(), not
get_tablespace_io_concurrency()).

ANALYZE prefetching was introduced in c6fc50c, so back-patch to 14.

Backpatch-through: 14
Reported-By: Egor Rogov
Discussion: https://postgr.es/m/9beada99-34ce-8c95-fadb-451768d08c64%40postgrespro.ru
This commit is contained in:
Stephen Frost 2021-08-27 19:23:11 -04:00
parent 8f6c110349
commit 9efa998a64

View File

@ -1164,7 +1164,7 @@ acquire_sample_rows(Relation onerel, int elevel,
nblocks = BlockSampler_Init(&bs, totalblocks, targrows, randseed);
#ifdef USE_PREFETCH
prefetch_maximum = get_tablespace_io_concurrency(onerel->rd_rel->reltablespace);
prefetch_maximum = get_tablespace_maintenance_io_concurrency(onerel->rd_rel->reltablespace);
/* Create another BlockSampler, using the same seed, for prefetching */
if (prefetch_maximum)
(void) BlockSampler_Init(&prefetch_bs, totalblocks, targrows, randseed);