public inbox for [email protected]  
help / color / mirror / Atom feed
From: Josh Kupershmidt <[email protected]>
To: pgsql-docs <[email protected]>
Subject: streaming replication confusion
Date: Thu, 8 Nov 2012 19:56:00 -0700
Message-ID: <CAK3UJRELGc4v_aoRstG8kY0JfCrt4xNUeW=uxtnwPSZ4zV5nMQ@mail.gmail.com> (raw)

I think there is at least[4] one confusing documentation leftover from
the 9.0 days at:
  http://www.postgresql.org/docs/devel/static/warm-standby.html

First, we claim:

| Streaming replication is asynchronous, so there is still a small delay
| between committing a transaction in the primary and for the changes
| to become visible in the standby.

This unqualified statement, which has remained the same since 9.0,
suggests synchronous replication is not possible using streaming
replication. Further down we are closer to the truth:

| PostgreSQL streaming replication is asynchronous by default.

Proposed fix for this gripe attached. I'd be pleased to see this
particular doc patch backpatched to 9.2 and 9.1, given that the
replication docs are both important and fairly confusing.

The Streaming Replication wiki page[1] contains similar out-of-date
claims[2]; I can fix some of the egregious errors myself, though help
is welcome. The "Synchronous Replication" wiki page[3] is in even
worse shape, containing mostly info about a patch different than what
was committed... and it's currently the first Google search result for
"postgresql synchronous replication" :-(

Josh

[1] http://wiki.postgresql.org/wiki/Streaming_Replication
[2] such as "Currently SR supports only asynchronous log-shipping", or
already-released functionality described under the "Future release
section".
[3] http://wiki.postgresql.org/wiki/Synchronous_replication
[4] I have a larger gripe about the way this entire page is laid out,
with streaming rep. info bolted onto a page which is still named and
was intended to be about warm standby, but I'll try to make a separate
thread about that.


Attachments:

  [application/octet-stream] streaming_rep.docfix.diff (1.4K, 2-streaming_rep.docfix.diff)
  download | inline diff:
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
new file mode 100644
index 62f72b4..c29fe82
*** a/doc/src/sgml/high-availability.sgml
--- b/doc/src/sgml/high-availability.sgml
*************** archive_cleanup_command = 'pg_archivecle
*** 738,750 ****
     </para>
  
     <para>
!     Streaming replication is asynchronous, so there is still a small delay
!     between committing a transaction in the primary and for the changes to
!     become visible in the standby. The delay is however much smaller than with
!     file-based log shipping, typically under one second assuming the standby
!     is powerful enough to keep up with the load. With streaming replication,
!     <varname>archive_timeout</> is not required to reduce the data loss
!     window.
     </para>
  
     <para>
--- 738,751 ----
     </para>
  
     <para>
!     Streaming replication is asynchronous by default
!     (see <xref linkend="synchronous-replication">), in which case there is
!     a small delay between committing a transaction in the primary and the
!     changes becoming visible in the standby. This delay is however much
!     smaller than with file-based log shipping, typically under one second
!     assuming the standby is powerful enough to keep up with the load. With
!     streaming replication, <varname>archive_timeout</> is not required to
!     reduce the data loss window.
     </para>
  
     <para>


view thread (5+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: streaming replication confusion
  In-Reply-To: <CAK3UJRELGc4v_aoRstG8kY0JfCrt4xNUeW=uxtnwPSZ4zV5nMQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox