summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2012-11-06 14:28:48 -0500
committerBruce Momjian <bruce@momjian.us>2012-11-06 14:28:54 -0500
commit3cef201c198c99831d2ee96eaa7de68799abea9a (patch)
treea850eea0b9fcc8a07ad92dd6886d0c4147a3a8a5
parent329057fd8f967d08190cd355333430c604418d81 (diff)
In pg_upgrade, set synchronous_commit=off for the new cluster, to
improve performance when restoring the schema from the old cluster. Backpatch to 9.2.
-rw-r--r--contrib/pg_upgrade/server.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/contrib/pg_upgrade/server.c b/contrib/pg_upgrade/server.c
index a9f9d85b787..49d4c8f9d73 100644
--- a/contrib/pg_upgrade/server.c
+++ b/contrib/pg_upgrade/server.c
@@ -208,13 +208,18 @@ start_postmaster(ClusterInfo *cluster)
* maximum. We assume all datfrozenxid and relfrozen values are less than
* a gap of 2000000000 from the current xid counter, so autovacuum will
* not touch them.
+ *
+ * synchronous_commit=off improves object creation speed, and we only
+ * modify the new cluster, so only use it there. If there is a crash,
+ * the new cluster has to be recreated anyway.
*/
snprintf(cmd, sizeof(cmd),
- "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d %s %s%s\" start",
+ "\"%s/pg_ctl\" -w -l \"%s\" -D \"%s\" -o \"-p %d%s%s%s%s\" start",
cluster->bindir, SERVER_LOG_FILE, cluster->pgconfig, cluster->port,
(cluster->controldata.cat_ver >=
- BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? "-b" :
- "-c autovacuum=off -c autovacuum_freeze_max_age=2000000000",
+ BINARY_UPGRADE_SERVER_FLAG_CAT_VER) ? " -b" :
+ " -c autovacuum=off -c autovacuum_freeze_max_age=2000000000",
+ (cluster == &new_cluster) ? " -c synchronous_commit=off" : "",
cluster->pgopts ? cluster->pgopts : "", socket_string);
/*