On Wed, Apr 7, 2021 at 3:30 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> During recent developments in the vacuum, it has been noticed [1] that
> parallel vacuum workers don't use any buffer access strategy. I think
> we can fix it either by propagating the required information from the
> leader or just get the access strategy in each worker separately. The
> patches for both approaches for PG-13 are attached.
>
> Thoughts?
>
> [1] - https://www.postgresql.org/message-id/CAH2-Wz%3Dgf6FXW-jPVRdeCZk0QjhduCqH_XD3QbES9wPmhircuA%40mail.gmail.com
Note: I have not followed the original discussion in [1].
My understanding of the approach #1 i.e. propagating the vacuum
strategy down to the parallel vacuum workers from the leader is that
the same ring buffer (of 256KB for vacuum) will be used by both leader
and all the workers. In that case, I think we see more page flushes
(thus more IO) because 256KB is now shared by all of them. Whereas
with approach #2 each worker gets its own ring buffer (of 256KB) thus
less IO occurs compared to approach #1.
And in case of parallel inserts (although they are not yet committed
and in various levels discussions) we let each worker get its own ring
buffer (of size 16MB). Whatever the approach is chosen here, I think
it should be consistent.
With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com