pgsql: Simplify the effective_io_concurrency setting.

From: Thomas Munro <tmunro(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Simplify the effective_io_concurrency setting.
Date: 2020-03-16 04:24:25
Message-ID: E1jDhIf-00041v-MV@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Simplify the effective_io_concurrency setting.

The effective_io_concurrency GUC and equivalent tablespace option were
previously passed through a formula based on a theory about RAID
spindles and probabilities, to arrive at the number of pages to prefetch
in bitmap heap scans. Tomas Vondra, Andres Freund and others argued
that it was anachronistic and hard to justify, and commit 558a9165e08
already started down the path of bypassing it in new code. We agreed to
drop that logic and use the value directly.

For the default setting of 1, there is no change in effect. Higher
settings can be converted from the old meaning to the new with:

select round(sum(OLD / n::float)) from generate_series(1, OLD) s(n);

We might want to consider renaming the GUC before the next release given
the change in meaning, but it's not clear that many users had set it
very carefully anyway. That decision is deferred for now.

Discussion: https://postgr.es/m/CA%2BhUKGJUw08dPs_3EUcdO6M90GnjofPYrWp4YSLaBkgYwS-AqA%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b09ff53667ffc986371ec8ffa372916ad460220d

Modified Files
--------------
src/backend/executor/nodeBitmapHeapscan.c | 18 ++------
src/backend/storage/buffer/bufmgr.c | 74 +++----------------------------
src/backend/utils/misc/guc.c | 29 ++----------
src/include/storage/bufmgr.h | 6 +--
4 files changed, 14 insertions(+), 113 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alexander Korotkov 2020-03-16 11:54:43 Re: pgsql: Add kqueue(2) support to the WaitEventSet API.
Previous Message Peter Geoghegan 2020-03-16 03:54:45 pgsql: nbtree: Reorder nbtinsert.c prototypes.