Re: use `proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: use `proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`
Дата
Msg-id 4175578.1620329249@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: use `proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`  (Andres Freund <andres@anarazel.de>)
Ответы Re: use `proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`  (Andres Freund <andres@anarazel.de>)
Re: use `proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2021-05-07 00:30:13 +0800, 盏一 wrote:
>> Since we have introduced `pgxactoff` in
[941697c3c1ae5d6ee153065adb96e1e63ee11224](https://github.com/postgres/postgres/commit/941697c3c1ae5d6ee153065adb96e1e63ee11224),
and`pgxactoff` is always the index of `proc->pgprocno` in `procArray->pgprocnos`. So it seems that we could directly
use`proc->pgxactoff` as the value of `index` in `ProcArrayRemove()`? My thought is to replace 

> Sounds like a plan! Do you want to write a patch?

> If you do, I think it might be worthwhile to add an only-with-assertions
> loop checking that there's no other entry with the same pgprocno in the
> dense arrays.

Hmm, I can definitely see keeping a check that the selected entry
has the right PID and/or pgprocno, but making it search for duplicates
seems a bit over the top.  The existing code isn't guarding against
that, and I don't really see a reason why there's a meaningful risk
of it.

> Given that the code is new in 14, I wonder if we should cram this
> simplification in before beta?

+1, seems like a pretty clear missed opportunity in 941697c3c.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Hannu Krosing
Дата:
Сообщение: Re: .ready and .done files considered harmful
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Printing backtrace of postgres processes