]> granicus.if.org Git - postgresql/commit
Remove the CheckpointStartLock in favor of having backends show whether they
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 3 Apr 2007 16:34:36 +0000 (16:34 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 3 Apr 2007 16:34:36 +0000 (16:34 +0000)
commit9c9b619473cd9d2f3f3181bd9cd6862c64abb4d3
tree4cf41b7316d638094c0f30c8e2c0b6565d4465ee
parentfb4279e99cf71c27c132a75ed62a08395329b496
Remove the CheckpointStartLock in favor of having backends show whether they
are in their commit critical sections via flags in the ProcArray.  Checkpoint
can watch the ProcArray to determine when it's safe to proceed.  This is
a considerably better solution to the original problem of race conditions
between checkpoint and transaction commit: it speeds up commit, since there's
one less lock to fool with, and it prevents the problem of checkpoint being
delayed indefinitely when there's a constant flow of commits.  Heikki, with
some kibitzing from Tom.
src/backend/access/transam/twophase.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/backend/storage/ipc/procarray.c
src/backend/storage/lmgr/proc.c
src/include/storage/lwlock.h
src/include/storage/proc.h
src/include/storage/procarray.h