Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
In pg_upgrade, set synchronous_commit=off for the new cluster, to
authorBruce Momjian <bruce@momjian.us>
Tue, 6 Nov 2012 19:28:48 +0000 (14:28 -0500)
committerBruce Momjian <bruce@momjian.us>
Tue, 6 Nov 2012 19:28:54 +0000 (14:28 -0500)
improve performance when restoring the schema from the old cluster.

Backpatch to 9.2.

contrib/pg_upgrade/server.c

index a9f9d85b787110aafc771a1e0cb29131037ddb17..49d4c8f9d739791fb0d9bdbe2ee35dec7dc3ec5b 100644 (file)
@@ -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);
 
    /*