Re: Parallel vacuum workers prevent the oldest xmin from advancing
| От | Bossart, Nathan |
|---|---|
| Тема | Re: Parallel vacuum workers prevent the oldest xmin from advancing |
| Дата | |
| Msg-id | DE1687F4-3F66-438A-B4D4-9D3EC2A9A45D@amazon.com обсуждение исходный текст |
| Ответ на | Parallel vacuum workers prevent the oldest xmin from advancing (Masahiko Sawada <sawada.mshk@gmail.com>) |
| Список | pgsql-hackers |
On 10/6/21, 12:13 AM, "Masahiko Sawada" <sawada.mshk@gmail.com> wrote: > A customer reported that during parallel index vacuum, the oldest xmin > doesn't advance. Normally, the calculation of oldest xmin > (ComputeXidHorizons()) ignores xmin/xid of processes having > PROC_IN_VACUUM flag in MyProc->statusFlags. But since parallel vacuum > workers don’t set their statusFlags, the xmin of the parallel vacuum > worker is considered to calculate the oldest xmin. This issue happens > from PG13 where the parallel vacuum was introduced. I think it's a > bug. +1 > To fix it, I thought that we change the create index code and the > vacuum code so that the individual parallel worker sets its status > flags according to the leader’s one. But ISTM it’d be better to copy > the leader’s status flags to workers in ParallelWorkerMain(). I've > attached a patch for HEAD. The patch seems reasonable to me. Nathan
В списке pgsql-hackers по дате отправления: