Re: Streaming replication

From: Tatsuo Ishii <ishii(at)postgresql(dot)org>
To: mark(dot)kirkwood(at)catalyst(dot)net(dot)nz
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Streaming replication
Date: 2015-03-31 02:24:00
Message-ID: 20150331.112400.965201886086075141.t-ishii@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On 31/03/15 12:45, Tatsuo Ishii wrote:
>> In the doc:
>>
>> 25.2.5. Streaming Replication
>> :
>> The standby connects to the primary, which streams WAL records to the
>> standby as they're generated, without waiting for the WAL file to be
>> filled.
>>
>> This seems to claim that walsender sends WAL files which has not been
>> fsync'd yet. However, in walsender.c:
>>
>> /*
>> * Streaming the current timeline on a master.
>> *
>> * Attempt to send all data that's already been written out and
>> * fsync'd to disk. We cannot go further than what's been written out
>> * given the current implementation of XLogRead(). And in any case
>> * it's unsafe to send WAL that is not securely down to disk on the
>> * master: if the master subsequently crashes and restarts, slaves
>> * must not have applied any WAL that gets lost on the master.
>> */
>>
>> This one says walsender sends WAL records as long as there are
>> fsync'd.
>>
>> Am I missing something?
>>
>>
>
> I think the docs are trying to say that streaming replication doesn't
> wait for a (16MB) WAL *file* to be filled. but sends each (fsync'd) WAL
> record. I had to reread it several times too :-)

Thanks for the explanation. That makes sense. The docs definitely has
a room for improvement.

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Petr Jelinek 2015-03-31 02:25:18 Cleanup double semicolons at the end of source lines
Previous Message Joshua D. Drake 2015-03-31 01:48:38 Re: Bug #10432 failed to re-find parent key in index