Re: making update/delete of inheritance trees scale better

Поиск
Список
Период
Сортировка
Искать
От
David Rowley
Тема
Re: making update/delete of inheritance trees scale better
Дата
в 23:51:54
Msg-id
CAApHDvr5AX-rdZAx5yFr1nUF6-ZABCgKe2wy0Gn36Exik1nBHw@mail.gmail.com
Ответ на
Список
Дерево обсуждения
making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Re: making update/delete of inheritance trees scale better David Rowley <dgrowleyml@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better David Rowley <dgrowleyml@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Michael Paquier <michael@paquier.xyz>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Heikki Linnakangas <hlinnaka@iki.fi>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Heikki Linnakangas <hlinnaka@iki.fi>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Heikki Linnakangas <hlinnaka@iki.fi>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Heikki Linnakangas <hlinnaka@iki.fi>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Amit Langote <amitlangote09@gmail.com>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
Re: making update/delete of inheritance trees scale better Robert Haas <robertmhaas@gmail.com>
Re: making update/delete of inheritance trees scale better Tom Lane <tgl@sss.pgh.pa.us>
On Wed, 13 May 2020 at 00:54, Ashutosh Bapat
 wrote:
>
> On Mon, May 11, 2020 at 8:11 PM Amit Langote  wrote:
> > > Per row overhead would be incurred for every row whereas the plan time
> > > overhead is one-time or in case of a prepared statement almost free.
> > > So we need to compare it esp. when there are 2000 partitions and all
> > > of them are being updated.
> >
> > I assume that such UPDATEs would be uncommon.
>
> Yes, 2000 partitions being updated would be rare. But many rows from
> the same partition being updated may not be that common. We have to
> know how much is that per row overhead and updating how many rows it
> takes to beat the planning time overhead. If the number of rows is
> very large, we are good.

Rows from a non-parallel Append should arrive in order. If you were
worried about the performance of finding the correct ResultRelInfo for
the tuple that we just got, then we could just cache the tableOid and
ResultRelInfo for the last row, and if that tableoid matches on this
row, just use the same ResultRelInfo as last time.   That'll save
doing the hash table lookup in all cases, apart from when the Append
changes to the next child subplan.  Not sure exactly how that'll fit
in with the foreign table discussion that's going on here though.
Another option would be to not use tableoid and instead inject an INT4
Const (0 to nsubplans) into each subplan's targetlist that serves as
the index into an array of ResultRelInfos.

As for which ResultRelInfos to initialize, couldn't we just have the
planner generate an OidList of all the ones that we could need.
Basically, all the non-pruned partitions. Perhaps we could even be
pretty lazy about building those ResultRelInfos during execution too.
We'd need to grab the locks first, but, without staring at the code, I
doubt there's a reason we'd need to build them all upfront.  That
would help in cases where pruning didn't prune much, but due to
something else in the WHERE clause, the results only come from some
small subset of partitions.

David


В списке pgsql-hackers по дате отправления
От: Tom Lane
Дата:
От: Alvaro Herrera
Дата:
FAQ