On 24.04.2013 11:23, Simon Riggs wrote:
On 24 April 2013 09:10, Heikki Linnakangas<hlinnakan...@vmware.com>  wrote:
Regarding the change in pg_ctl:

         /*
-        * Use two different kinds of promotion file so we can understand
-        * the difference between smart and fast promotion.
+        * For 9.3 onwards, use fast promotion as the default option.
+        * Promotion with a full checkpoint is still possible by writing
+        * a file called "promote", e.g.
+        *       snprintf(promote_file, MAXPGPATH, "%s/promote", pg_data);
          */
-       if (shutdown_mode>= FAST_MODE)
-               snprintf(promote_file, MAXPGPATH, "%s/fast_promote",
pg_data);
-       else
-               snprintf(promote_file, MAXPGPATH, "%s/promote", pg_data);
+       snprintf(promote_file, MAXPGPATH, "%s/fast_promote", pg_data);


Should there be a version check there? I guess we've never guaranteed a
newer pg_ctl to work with an older server version, but it seems likely that
someone would try to do that, especially with "pg_ctl promote". With the
above change, creating $DATADIR/fast_promote in a 9.2 server's data dir will
do nothing. I'd suggest that we keep the filename unchanged, "promote", and
only change the behavior in the server side, so that it performs fast
promotion. If you want to have a "slow" promote file, we can call that
"slow_promote" or "checkpoint_then_promote" or something.

pg_ctl already checks versions, so I don't see the point.

The point is, if you do "pgsql93/bin/pg_ctl -D $92DATADIR promote", it will create fast_promote file and return success. But it won't actually promote the server. I think that's bad.

If pg_ctl already has a check against that, fine, but I don't think it does. Please make sure you test that before applying.

- Heikki


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to