On Fri, 2007-01-26 at 16:09 +0200, Hannu Krosing wrote: > Ühel kenal päeval, R, 2007-01-26 kell 12:25, kirjutas Simon Riggs:
> > Two questions: > > - why does it have to block? I don't see any reason - the first process > > can begin doing useful work. The second process might fail or itself be > > blocked by something. > > As I see it, it has to block so that it's transaction woud not end so > that the system knows that it can't yet remove tuples in that snapshot. > > And it should block util all its consumers have ended their use of the > published snapshot Agreed that the Snapshot must be visible to all, but thats no reason why the original call has to block, just that we must do something to prevent the Snapshot from disappearing from view. > > - why just serializable snapshots? > > There s probably no point to aquire it into read-commited transaction > when the next command will revert to its own snapshot anyway. But the stated use case was to share snapshots, which seems valid whatever the type of Snapshot. One of the stated cases was parallel query... -- Simon Riggs EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend