Index vacuuming and [auto]prewarm AIO concurrency should be governed by
maintenance_io_concurrency. As such, pass those read stream users the
READ_STREAM_MAINTENANCE flag which will calculate their read stream
distance with maintenance_io_concurrency instead of
effective_io_concurrency. This was an oversight in the original commits
making those operations use the read stream API.
Discussion: https://postgr.es/m/flat/CAAKRu_aopDxTo4b41Mt_7Zc-z0_ngocrY8SFCCY6Aph1HgwuNw%40mail.gmail.com
.nblocks = nblocks,
};
- stream = read_stream_begin_relation(READ_STREAM_DEFAULT |
+ stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE |
+ READ_STREAM_DEFAULT |
READ_STREAM_USE_BATCHING,
NULL,
rel,
* It is safe to use batchmode as block_range_read_stream_cb takes no
* locks.
*/
- stream = read_stream_begin_relation(READ_STREAM_FULL |
+ stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE |
+ READ_STREAM_FULL |
READ_STREAM_USE_BATCHING,
NULL,
rel,
* It is safe to use batchmode as block_range_read_stream_cb takes no
* locks.
*/
- stream = read_stream_begin_relation(READ_STREAM_FULL |
+ stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE |
+ READ_STREAM_FULL |
READ_STREAM_USE_BATCHING,
info->strategy,
rel,
* It is safe to use batchmode as block_range_read_stream_cb takes no
* locks.
*/
- stream = read_stream_begin_relation(READ_STREAM_FULL |
+ stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE |
+ READ_STREAM_FULL |
READ_STREAM_USE_BATCHING,
info->strategy,
rel,
* It is safe to use batchmode as block_range_read_stream_cb takes no
* locks.
*/
- stream = read_stream_begin_relation(READ_STREAM_FULL |
+ stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE |
+ READ_STREAM_FULL |
READ_STREAM_USE_BATCHING,
bds->info->strategy,
index,