Re: Parallel Append subplan order instability on aye-aye
David Rowley <david.rowley@2ndquadrant.com>
From: David Rowley <david.rowley@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-07-17T01:20:18Z
Lists: pgsql-hackers
On Wed, 17 Jul 2019 at 07:23, Andres Freund <andres@anarazel.de> wrote: > > Hi, > > On 2019-07-15 21:12:32 -0400, Tom Lane wrote: > > But I bet that these tables forming > > an inheritance hierarchy (with multiple inheritance even) does > > have something to do with it somehow, because if this were a > > generic VACUUM bug surely we'd be seeing it elsewhere. > > It's possible that it's hidden in other cases, because of > > void > table_block_relation_estimate_size(Relation rel, int32 *attr_widths, > BlockNumber *pages, double *tuples, > double *allvisfrac, > Size overhead_bytes_per_tuple, > Size usable_bytes_per_page) > ... > * If the table has inheritance children, we don't apply this heuristic. > * Totally empty parent tables are quite common, so we should be willing > * to believe that they are empty. > */ > if (curpages < 10 && > relpages == 0 && > !rel->rd_rel->relhassubclass) > curpages = 10; > > which'd not make us actually take a relpages=0 into account for tables > without inheritance. A lot of these tables never get 10+ pages long, so > the heuristic would always apply... Surely it can't be that since that just sets what *pages gets set to. Tom mentioned that following was returning 0 pages and tuples: -- Temporary hack to investigate whether extra vacuum/analyze is happening select relname, relpages, reltuples from pg_class where relname like '__star' order by relname; relname | relpages | reltuples ---------+----------+----------- a_star | 1 | 3 -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
ANALYZE a_star and its children to avoid plan instability in tests.
- e40f3c747203 12.0 landed
- b9bffa004a99 13.0 landed
-
Finish reverting "Insert temporary debugging output in regression tests."
- d9cacca2d139 13.0 landed
-
Partially revert "Insert temporary debugging output in regression tests."
- b43f7c117e66 13.0 landed
-
Insert temporary debugging output in regression tests.
- f03a9ca4366d 12.0 landed
-
Improve the heuristic for ordering child paths of a parallel append.
- 624e440a4744 11.0 cited