From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Peter Geoghegan <pg(at)bowt(dot)ie> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: The case for removing replacement selection sort |
Date: | 2017-09-28 22:18:34 |
Message-ID: | CA+Tgmobe7tJfu-r6u5XpZemaAD3MXC6EBDkkfecQ=Ad-SC7-1g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Jul 14, 2017 at 6:20 PM, Peter Geoghegan <pg(at)bowt(dot)ie> wrote:
> With the additional enhancements made to Postgres 10, I doubt that
> there are any remaining cases where it wins.
I tried my favorite sorting test case -- pgbench -i -s 300 and then
reindex index pgbench_accounts_pkey. I set maintenance_work_mem to
4MB so that replacement selection would be chosen.
On master, this takes ~21.5 seconds; with replacement_sort_tuples = 0,
it takes ~19.1 seconds. So, disabling replacement selection is a win.
On 9.6, this takes ~19.1 seconds; with replacement_sort_tuples = 0, it
takes ~23 seconds. So, disabling replacement selection is a loss.
This supports your theory that we should go ahead and remove
replacement selection. It does however both me a bit that this test
case is apparently slower in master than in 9.6, and not just with
very small values of work_mem. With default maintenance_work_mem
(64MB), this takes about 13 seconds on 9.6 but about 15 seconds on
master -- and with that setting replacement selection is not chosen at
all.
Any idea what causes this regression?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-09-28 22:20:51 | Re: [COMMITTERS] pgsql: Fix freezing of a dead HOT-updated tuple |
Previous Message | Andres Freund | 2017-09-28 22:11:17 | Re: Minor codegen silliness in ExecInterpExpr() |