Adding clarification to description of IPC wait events XactGroupUpdate and ProcArrayGroupUpdate

Поиск
Список
Период
Сортировка
От SAMEER KUMAR
Тема Adding clarification to description of IPC wait events XactGroupUpdate and ProcArrayGroupUpdate
Дата
Msg-id CAGPeHmh6UMrKQHKCmX+5vV5TH9P=Kw9en3k68qEem6J=yrZPUA@mail.gmail.com
обсуждение исходный текст
Список pgsql-hackers
Hi,

While preparing for my presentation on PostgreSQL Wait Events at
PgConf India, I was trying to understand *IPC:XactGroupUpdate* in more
detail. PostgreSQL documentation [1] mentions:

> A process is waiting for the group leader to update the transaction status at the end of a _parallel operation_.

I looked at `TransactionGroupUpdateXidStatus` in PostgreSQL code (`clog.c`)
Line `481` [2] sets this wait event.

And after reading the code, my understanding is - It does not
necessarily need to be a "_parallel operation_". Or maybe I am just
misinterpreting "parallel operation" in this context. But it is
possible for other users to confuse it with the parallel query (and
parallel workers) feature.

**My understanding is -**

In order to avoid `XactSLRULock` being passed between backends,
backends waiting for it will add themselves to the queue [3]. The
first backend in the queue (also the leader) will be the only one to
acquire `XactSLRULock` and update the XID status for all those pids
which are in the queue. This IPC wait event (`XactGroupUpdate`) is
observed in other backened processes who are in the queue, waiting for
the group leader to update the XID status.

We can add more clarity on what this wait event means. A similar
change should be done for `ProcArrayGroupUpdate` to indicate that the
wait event is a result of concurrent backend processes trying to clear
the transaction id (instead of saying "parallel operation”).

I am attaching a patch for consideration. This should also be
backpatched-through version 13.


[1] https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-IPC-TABLE
[2] https://github.com/postgres/postgres/blob/master/src/backend/access/transam/clog.c#L481
[3] https://github.com/postgres/postgres/blob/master/src/backend/access/transam/clog.c#L399


Thanks,
Sameer
DB Specialist,
Amazon Web Services

Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: pg_upgrade and logical replication
Следующее
От: Nathan Bossart
Дата:
Сообщение: Re: pg_upgrade and logical replication