Heikki Linnakangas <[EMAIL PROTECTED]> 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

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to