| From: | Xuneng Zhou <xunengzhou(at)gmail(dot)com> |
|---|---|
| To: | cca5507 <cca5507(at)qq(dot)com>, Andreas Karlsson <andreas(at)proxel(dot)se> |
| Cc: | John Naylor <johncnaylorls(at)gmail(dot)com>, Sami Imseih <samimseih(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Support loser tree for k-way merge |
| Date: | 2026-05-25 10:01:15 |
| Message-ID: | CABPTF7WRcm=y-2dRs-vK3SLyCVyxLvUyTDQ-9+-OLoBYAwG+=Q@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi ChangAo,
On Sat, Jan 3, 2026 at 11:46 AM Andreas Karlsson <andreas(at)proxel(dot)se> wrote:
>
> On 12/8/25 7:46 AM, cca5507 wrote:
> > For heap, it reduces one tuple comparison if the keys are same and increase one if not.
> > For loser tree, it reduces many tuple comparisons (maybe tree's height - 1?) if the keys
> > are same and increase one if not. The bad case is all keys are different, so we still need
> > to decide when to use the fast path, it's hard I think.
>
> My suggestion is that you start with trying to find some cases where we
> get regressions and measure how big these regressions are and if there
> are any clear cutoffs where we can use a simple heuristic to select
> algorithm. One thought I have is that pre-sorted input could be slower
> with loser than with heap but since I am unfamiliar with loser trees I
> could be wrong.
I came across a paper written by Goetz Graefe [1] which describes the
tree-of-losers priority queue model. I am not familiar with this
topic, but it looks promising. If some of the techniques described
there are desirable for Postgres, does it make sense to extract the
loser tree as a standalone module like generic heap does?
[1] https://dl.acm.org/doi/10.1145/3778176
--
Regards,
Xuneng Zhou
HighGo Software Co., Ltd.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | X-MAN | 2026-05-25 10:14:05 | [PATCH] DOCS: Fix inconsistent text description punctuation in UPDATE FOR PORTION OF |
| Previous Message | shveta malik | 2026-05-25 09:58:26 | Re: [PATCH] Release replication slot on error in SQL-callable slot functions |