Re: [PATCH] Incremental sort

Alexander Korotkov <a.korotkov@postgrespro.ru>

From: Alexander Korotkov <a.korotkov@postgrespro.ru>
To: Andres Freund <andres@anarazel.de>
Cc: David Steele <david@pgmasters.net>, Heikki Linnakangas <hlinnaka@iki.fi>, Mithun Cy <mithun.cy@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-04-03T19:03:56Z
Lists: pgsql-hackers

Attachments

On Mon, Apr 3, 2017 at 9:34 PM, Andres Freund <andres@anarazel.de> wrote:

> On 2017-03-29 00:17:02 +0300, Alexander Korotkov wrote:
> > On Tue, Mar 28, 2017 at 5:27 PM, David Steele <david@pgmasters.net>
> wrote:
> > > On 3/20/17 10:19 AM, Heikki Linnakangas wrote:
> > >
> > >> On 03/20/2017 11:33 AM, Alexander Korotkov wrote:
> > >>
> > >>> Please, find rebased patch in the attachment.
> > >>>
> > >>
> > >> I had a quick look at this.
> > >>
> > >
> > > <...>
> > >
> > > According to 'perf', 85% of the CPU time is spent in ExecCopySlot(). To
> > >> alleviate that, it might be worthwhile to add a special case for when
> > >> the group contains exactly one group, and not put the tuple to the
> > >> tuplesort in that case. Or if we cannot ensure that the Incremental
> Sort
> > >> is actually faster, the cost model should probably be smarter, to
> avoid
> > >> picking an incremental sort when it's not a win.
> > >>
> > >
> > > This thread has been idle for over a week.  Please respond with a new
> > > patch by 2017-03-30 00:00 AoE (UTC-12) or this submission will be
> marked
> > > "Returned with Feedback".
>
> > Thank you for reminder!
>
> I've just done so.  Please resubmit once updated, it's a cool feature.
>

Thank you!
I already sent version of patch after David's reminder.
Please find rebased patch in the attachment.

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

Commits

  1. Further adjustments to Hashagg EXPLAIN ANALYZE output

  2. Rework EXPLAIN format for incremental sort

  3. Fix typos and improve incremental sort comments

  4. Stabilize incremental_sort tests

  5. Minor improvements in Incremental Sort explain

  6. Consider Incremental Sort paths at additional places

  7. Fix representation of SORT_TYPE_STILL_IN_PROGRESS.

  8. Fix failures in incremental_sort due to number of workers

  9. Fix show_incremental_sort_info with force_parallel_mode

  10. Implement Incremental Sort

  11. Fix handling of "Subplans Removed" field in EXPLAIN output.

  12. Fix EXPLAIN (SETTINGS) to follow policy about when to print empty fields.

  13. Ensure plpgsql result tuples have the right composite type marking.

  14. Propagate sort instrumentation from workers back to leader.

  15. Make new regression test case parallel-safe, and improve its output.

  16. Push limit through subqueries to underlying sort, where possible.

  17. Fix inappropriate printing of never-measured times in EXPLAIN.

  18. Fix some infelicities in EXPLAIN output for parallel query plans.