Re: getting rid of SnapshotNow

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: getting rid of SnapshotNow
Date: 2013-07-23 16:28:34
Message-ID: 2812.1374596914@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-odbc

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> 2. snapshot-self-not-now-v1.patch changes several uses of SnapshotNow
>> to use SnapshotSelf instead. These include pgrowlocks(),
>> pgstat_heap(), and get_actual_variable_range().

> Tom proposed that we use SnapshotDirty for this case; let me just ask
> whether there are any security concerns around that. pgstattuple only
> displays aggregate information so I think that's OK, but I wonder if
> the value found in get_actual_variable_range() can leak out in EXPLAIN
> output or whatever. I can't particularly think of any reason why that
> would actually matter, but I've generally shied away from exposing
> data written by uncommitted transactions, and this would be a step in
> the other direction. Does this worry anyone else or am I being
> paranoid?

As far as get_actual_variable_range() is concerned, an MVCC snapshot
would probably be the thing to use anyway; I see no need for the planner
to be using estimates that are "more up to date" than that. pgrowlocks
and pgstat_heap() might be in a different category.

> But thinking about it a little more, I wonder why
> get_actual_variable_range() is using a snapshot at all. Presumably
> what we want there is to find the last index key, regardless of the
> visibility of the heap tuple to which it points.

No, what we ideally want is to know the current variable range that
would be seen by the query being planned.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Smith 2013-07-23 17:16:52 Re: [v9.4] row level security
Previous Message Kevin Grittner 2013-07-23 16:27:34 Re: [COMMITTERS] pgsql: Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.

Browse pgsql-odbc by date

  From Date Subject
Next Message Robert Haas 2013-07-23 18:08:29 Re: getting rid of SnapshotNow
Previous Message Robert Haas 2013-07-23 15:25:27 Re: getting rid of SnapshotNow