Re: PoC: Partial sort

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)2ndquadrant(dot)com>, Andreas Karlsson <andreas(at)proxel(dot)se>
Subject: Re: PoC: Partial sort
Date: 2013-12-22 17:57:16
Message-ID: CAPpHfdv5R866oyq1fhEwf0HSBOC9B5P8fYT+sTsjLfausp=-QA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Dec 22, 2013 at 8:12 PM, Martijn van Oosterhout
<kleptog(at)svana(dot)org>wrote:

> On Sun, Dec 22, 2013 at 07:38:05PM +0400, Alexander Korotkov wrote:
> > Hi!
> >
> > Next revision. It expected to do better work with optimizer. It
> introduces
> > presorted_keys argument of cost_sort function which represent number of
> > keys already sorted in Path. Then this function uses estimate_num_groups
> to
> > estimate number of groups with different values of presorted keys and
> > assumes that dataset is uniformly divided by
> > groups. get_cheapest_fractional_path_for_pathkeys tries to select the
> path
> > matching most part of path keys.
> > You can see it's working pretty good on single table queries.
>
> Nice work! The plans look good and the calculated costs seem sane also.
>
> I suppose the problem with the joins is generating the pathkeys?
>

In general, problem is that partial sort is alternative to do less
restrictive merge join and filter it's results. As far as I can see, taking
care about it require some rework of merge optimization. For now, I didn't
get what it's going to look like. I'll try to dig more into details.

------
With best regards,
Alexander Korotkov.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2013-12-22 20:26:39 Re: PoC: Partial sort
Previous Message Tom Lane 2013-12-22 16:29:59 Re: WITHIN GROUP patch