Re: Improve checking for pg_index.xmin

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема Re: Improve checking for pg_index.xmin
Дата
Msg-id CAPpHfdtDQmbhbqR_WzcTn-LdHG_Yag1=-cdTM=X4T6YYCc=ctA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Improve checking for pg_index.xmin  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On Tue, Mar 24, 2020 at 3:38 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Sun, Jan 12, 2020 at 3:33 AM Alexander Korotkov
> <a.korotkov@postgrespro.ru> wrote:
> >
> > On Wed, Jan 8, 2020 at 4:37 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > > Heikki Linnakangas <hlinnaka@iki.fi> writes:
> > > > On 01/11/2019 01:50, Alexander Korotkov wrote:
> > > >> This happens so, because we're checking that there is no broken HOT
> > > >> chains after index creation by comparison pg_index.xmin and
> > > >> TransactionXmin.   So, we check that pg_index.xmin is in the past for
> > > >> current transaction in lossy way by comparison just xmins.  Attached
> > > >> patch changes this check to XidInMVCCSnapshot().
> > > >> With patch the issue is gone.  My doubt about this patch is that it
> > > >> changes check with TransactionXmin to check with GetActiveSnapshot(),
> > > >> which might be more recent.  However, query shouldn't be executer with
> > > >> older snapshot than one it was planned with.
> > >
> > > > Hmm. Maybe you could construct a case like that with a creative mix of
> > > > stable and volatile functions? Using GetOldestSnapshot() would be safer.
> > >
> > > I really wonder if this is safe at all.
> > >
> > > (1) Can we assume that the query will be executed with same-or-newer
> > > snapshot as what was used by the planner?  There's no such constraint
> > > in the plancache, I'm pretty sure.
> > >
> > > (2) Is committed-ness of the index-creating transaction actually
> > > sufficient to ensure that none of the broken HOT chains it saw are
> > > a problem for the onlooker transaction?  This is, at best, really
> > > un-obvious.  Some of those HOT chains could involve xacts that were
> > > still not committed when the index build finished, I believe.
> > >
> > > (3) What if the index was made with CREATE INDEX CONCURRENTLY ---
> > > which xid is actually on the pg_index row, and how does that factor
> > > into (1) and (2)?
> >
> > Thank you for pointing.  I'll investigate these issues in detail.
> >
>
> Are you planning to work on this patch [1] for current CF?  If not,
> then I think it is better to either move this to the next CF or mark
> it as RWF.

I didn't manage to investigate this subject and provide new patch
version.  I'm marking this RWF.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company



В списке pgsql-hackers по дате отправления:

Предыдущее
От: James Coleman
Дата:
Сообщение: Re: [PATCH] Incremental sort (was: PoC: Partial sort)
Следующее
От: Andres Freund
Дата:
Сообщение: Re: WIP: WAL prefetch (another approach)