summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2020-03-16 12:31:34 +1300
committerThomas Munro <tmunro@postgresql.org>2020-03-16 17:14:26 +1300
commitfc34b0d9de27ab5ac2887da00b3892bdabd89e45 (patch)
treebfa65c51892f19538b6e7e53633654ddce5eb989 /src/include
parentb09ff53667ffc986371ec8ffa372916ad460220d (diff)
downloadpostgresql-fc34b0d9de27ab5ac2887da00b3892bdabd89e45.tar.gz
Introduce a maintenance_io_concurrency setting.
Introduce a GUC and a tablespace option to control I/O prefetching, much like effective_io_concurrency, but for work that is done on behalf of many client sessions. Use the new setting in heapam.c instead of the hard-coded formula effective_io_concurrency + 10 introduced by commit 558a9165e08. Go with a default value of 10 for now, because it's a round number pretty close to the value used for that existing case. Discussion: https://postgr.es/m/CA%2BhUKGJUw08dPs_3EUcdO6M90GnjofPYrWp4YSLaBkgYwS-AqA%40mail.gmail.com
Diffstat (limited to 'src/include')
-rw-r--r--src/include/commands/tablespace.h1
-rw-r--r--src/include/storage/bufmgr.h1
-rw-r--r--src/include/utils/spccache.h1
3 files changed, 3 insertions, 0 deletions
diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h
index 41c457052d..fd1b28fca2 100644
--- a/src/include/commands/tablespace.h
+++ b/src/include/commands/tablespace.h
@@ -40,6 +40,7 @@ typedef struct TableSpaceOpts
float8 random_page_cost;
float8 seq_page_cost;
int effective_io_concurrency;
+ int maintenance_io_concurrency;
} TableSpaceOpts;
extern Oid CreateTableSpace(CreateTableSpaceStmt *stmt);
diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h
index 2bf5afdade..d2a5b52f6e 100644
--- a/src/include/storage/bufmgr.h
+++ b/src/include/storage/bufmgr.h
@@ -58,6 +58,7 @@ extern int bgwriter_lru_maxpages;
extern double bgwriter_lru_multiplier;
extern bool track_io_timing;
extern int effective_io_concurrency;
+extern int maintenance_io_concurrency;
extern int checkpoint_flush_after;
extern int backend_flush_after;
diff --git a/src/include/utils/spccache.h b/src/include/utils/spccache.h
index 5112ba3c37..7e4ec69aa2 100644
--- a/src/include/utils/spccache.h
+++ b/src/include/utils/spccache.h
@@ -16,5 +16,6 @@
void get_tablespace_page_costs(Oid spcid, float8 *spc_random_page_cost,
float8 *spc_seq_page_cost);
int get_tablespace_io_concurrency(Oid spcid);
+int get_tablespace_maintenance_io_concurrency(Oid spcid);
#endif /* SPCCACHE_H */