Re: ResourceOwners for Snapshots? holdable portals

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ResourceOwners for Snapshots? holdable portals
Date: 2008-02-27 17:53:09
Message-ID: 3522.1204134789@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
> We currently just copy the portal's content into a Materialize node, and
> let the snapshot go away at transaction's end. This works, but ISTM we
> could improve that by keeping track of the portal's snapshot separately
> from the transaction -- that is to say, to hang it from the portal's
> ResourceOwner. This would allow us to avoid the Materialize node
> altogether, and just keep the xmin back until the portal's gone.

That's a pretty horrid idea: what if the query being executed by the
portal has side-effects? You can't get away with not executing it
to completion before you close the transaction. Not to mention that
it depends on locks not just snapshots.

As far as the general point goes, I had been thinking of managing
snapshots in a central cache, because if you want to advance xmin
intratransaction then some piece of code has to be aware of *all* the
open snapshots in the backend; and the ResourceOwners can't do that
conveniently because they're fairly independent. Or were you meaning
that you would do that and on top of it have the ResourceOwners track
references into the cache?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Neil Conway 2008-02-27 18:58:03 Re: proposal: plpgsql return execute ...
Previous Message Florian G. Pflug 2008-02-27 17:47:26 Re: An idea for parallelizing COPY within one backend