Re: [PATCH] Use optimized single-datum tuplesort in ExecSort
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Ronan Dunklau <ronan.dunklau@aiven.io>, James Coleman <jtc331@gmail.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>,
Dilip Kumar <dilipbalaut@gmail.com>
Date: 2021-07-15T00:30:38Z
Lists: pgsql-hackers
Em qua., 14 de jul. de 2021 às 21:21, David Rowley <dgrowleyml@gmail.com> escreveu: > On Thu, 15 Jul 2021 at 12:10, Ranier Vilela <ranier.vf@gmail.com> wrote: > > > > Em qua., 14 de jul. de 2021 às 20:43, David Rowley <dgrowleyml@gmail.com> > escreveu: > >> > >> On Thu, 15 Jul 2021 at 05:55, Ranier Vilela <ranier.vf@gmail.com> > wrote: > >> > I repeated (3 times) the benchmark with v8 here, > >> > and the results were not good. > >> > >> Do you have any good theories on why the additional branching that's > >> done in v7b vs v8 might cause it to run faster? > > > > > > Branch Predictions works with *more* probable path, > > otherwise a penalty occurs and the cpu must revert the results. > > But, in v8 there is no additional branch, so no branch to mispredict. > I don't really see how your explanation fits. > In v8 the branch occurs at : + if (ExecGetResultType(outerPlanState(sortstate))->natts == 1) datumSort is tested first. Cpu time is a more expensive resource. Always is executed two branches, if it is right path, win, otherwise occurs a penalty time. > It seems much more likely to me that the results were just noisy. It > would be good to see if you can recreate them consistently. > I do. Can you please share results with v7b? regards, Ranier Vilela
Commits
-
Make nodeSort.c use Datum sorts for single column sorts
- 91e9e89dccdf 15.0 landed