Fujii Masao wrote:
> --- 127,152 ----
> When this option is used, <application>pg_receivexlog</> will report
> a flush position to the server, indicating when each segment has been
> synchronized to disk so that the server can remove that segment if it
> ! is not otherwise needed. <literal>--synchronous</literal> option must
> ! be specified when making <application>pg_receivexlog</> run as
> ! synchronous standby by using replication slot. Otherwise WAL data
> ! cannot be flushed frequently enough for this to work correctly.
> </para>
> </listitem>
> </varlistentry>
Whitespace damage here.
> + printf(_(" --synchronous flush transaction log in real time\n"));
"in real time" sounds odd. How about "flush transaction log
immediately after writing", or maybe "have transaction log writes be
synchronous".
> --- 781,791 ----
> now = feGetCurrentTimestamp();
>
> /*
> ! * Issue sync command as soon as there are WAL data which
> ! * has not been flushed yet if synchronous option is true.
> */
> if (lastFlushPosition < blockpos &&
> ! walfile != -1 && synchronous)
I'd put the "synchronous" condition first in the if(), and start the
comment with it rather than putting it at the end. Both seem weird.
> --- 793,807 ----
> progname, current_walfile_name, strerror(errno));
> goto error;
> }
> lastFlushPosition = blockpos;
> !
> ! /*
> ! * Send feedback so that the server sees the latest WAL locations
> ! * immediately if synchronous option is true.
> ! */
> ! if (!sendFeedback(conn, blockpos, now, false))
> ! goto error;
> ! last_status = now;
I'm not clear about this comment .. why does it say "if synchronous
option is true" when it's not checking the condition?
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services