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