OSDN Git Service

A session that does not have any live snapshots does not have to be waited for
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 4 Apr 2009 17:40:36 +0000 (17:40 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 4 Apr 2009 17:40:36 +0000 (17:40 +0000)
commitc973051ae69228129aeb8eb413d451ba4b326cad
tree63f48e51738810a7602043ceaad8f94f8b6f56ee
parent1c2d408c013ecbbaa03ee0871c1867585f2d4903
A session that does not have any live snapshots does not have to be waited for
when we are waiting for old snapshots to go away during a concurrent index
build.  In particular, this rule lets us avoid waiting for
idle-in-transaction sessions.

This logic could be improved further if we had some way to wake up when
the session we are currently waiting for goes idle-in-transaction.  However
that would be a significantly more complex/invasive patch, so it'll have to
wait for some other day.

Simon Riggs, with some improvements by Tom.
src/backend/commands/indexcmds.c
src/backend/storage/ipc/procarray.c
src/include/storage/lock.h
src/include/storage/procarray.h