Re: Fix CheckpointStartLock starvation
| От | Tom Lane |
|---|---|
| Тема | Re: Fix CheckpointStartLock starvation |
| Дата | |
| Msg-id | 9715.1175619584@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Fix CheckpointStartLock starvation (Heikki Linnakangas <heikki@enterprisedb.com>) |
| Ответы |
Re: Fix CheckpointStartLock starvation
|
| Список | pgsql-patches |
Heikki Linnakangas <heikki@enterprisedb.com> writes:
> On a busy system, checkpoint could be starved while queuing for the
> CheckpointStartLock. To avoid that, get rid of CheckpointStartLock and
> instead set a flag in PGPROC struct when a commit starts. After
> computing the REDO ptr, checkpoint waits for all backends that had that
> flag set to finish their commits. This eliminates the same race
> condition the CheckpointStartLock was there for, without the risk of
> starvation.
Applied with some revisions --- I did not see the point of forcing
checkpoint to wait till the transaction was fully out of its commit;
we only need it to wait till clog is updated. The procarray code
seemed overly complicated too.
regards, tom lane
В списке pgsql-patches по дате отправления: