Re: Upcoming hot standby replication question

From: Greg Smith <greg(at)2ndquadrant(dot)com>
To: Ivan Voras <ivoras(at)freebsd(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Upcoming hot standby replication question
Date: 2010-04-09 18:05:38
Message-ID: 4BBF6C72.5080708@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ivan Voras wrote:
> Ok, but I imagine there should be a difference between COMMITs
> returning before or after the actual data is sent over the network
> (though admittedly socket buffering could make it hard to
> distinguish).
>

To be clear here: there is no direct connection whatsoever between the
clients doing commits and the transmission to the standby in 9.0. They
are completely decoupled from one another, done by separate processes.
The client doing the commit has no idea what's the WAL sender process
will do later in order to replicate its results.

> In addition to that, how about a compromise: COMMITs returning when
> the remote side ACKs acceptance but before it passes data to storage
>

This is what's referred to as semi-synchronous replication, a term
popularized by its implementation in MySQL:
http://code.google.com/p/google-mysql-tools/wiki/SemiSyncReplicationDesign
http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html

The planned design for PostgreSQL 9.1:
http://wiki.postgresql.org/wiki/Streaming_Replication

Breaks the possibilities down into four levels:

async: Current model, never wait for the standby
recv: Wait for the standby to receive the data into memory (AKA
semi-synchronous)
fsync: The standby must have committed the data to disk such that it
won't be lost in case of a crash (AKA synchronous)
apply: That data must actually be fully processed and available for
queries against the standby

--
Greg Smith 2ndQuadrant US Baltimore, MD
PostgreSQL Training, Services and Support
greg(at)2ndQuadrant(dot)com www.2ndQuadrant.us

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Sam Mason 2010-04-09 21:03:19 Re: Can not connect remotely
Previous Message Rodrigo Gonzalez 2010-04-09 17:20:04 Re: Can not connect remotely