Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <
От | Robert Haas |
---|---|
Тема | Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < |
Дата | |
Msg-id | CA+TgmoY2p=BUKtFOJiJN74s2eiD5jn5ZragbUw=i-D3U1O0pgQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < (Alvaro Herrera <alvherre@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] Re: pgsql: Avoid extra locks in
GetSnapshotData if old_snapshot_threshold <
Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < Re: [HACKERS] Re: pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold < |
Список | pgsql-committers |
On Wed, Jun 15, 2016 at 2:45 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Robert Haas wrote: >> On Wed, Jun 15, 2016 at 1:44 PM, Kevin Grittner <kgrittn@gmail.com> >> wrote: >> > The test I showed creates a situation which (to ANALYZE) is >> > identical to what you describe -- ANALYZE sees a page with an LSN >> > recent enough that it could have been (and actually has been) >> > pruned. Why would it be better for the ANALYZE to fail than to >> > complete? >> >> As I understand it, the reason we need to sometimes give "ERROR: >> snapshot too old" after early pruning is because we might otherwise >> give the wrong answer. > > So what constitutes "the wrong answer"? A regular transaction reading a > page and not finding a tuple that should have been there but was > removed, is a serious problem and should be aborted. For ANALYZE it may > not matter a great deal. Some very old tuple that might have been > chosen for the sample is not there; a different tuple is chosen instead, > so the stats might be slightly difference. No big deal. > > Maybe it is possible to get into trouble if you're taking a sample for > an expression index. The expression index case is the one to worry about; if there is a problem, that's where it is. What bothers me is that a function used in an expression index could do anything at all - it can read any table in the database. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-committers по дате отправления: