Hi,

On Mon, Apr 27, 2009 at 8:43 PM, Heikki Linnakangas
<heikki.linnakan...@enterprisedb.com> wrote:
> Fujii Masao wrote:
>>
>> On Fri, Apr 24, 2009 at 3:20 PM, Heikki Linnakangas
>> <heikki.linnakan...@enterprisedb.com> wrote:
>>>
>>> It's not safe to write WAL after the checkpoint, as RequestXLogSwitch()
>>> does. After restart, the system will start inserting WAL from the
>>> checkpoint
>>> redo point, which is just before the XLOG_SWITCH record, and will
>>> overwrite
>>> it.
>>
>> Since, in this case, the WAL file including XLOG_SWITCH exists
>> in archive, I don't think that it's unsafe, i.e. XLOG_SWITCH would
>> be treated as the last applied record and not be overwritten. WAL
>> records would start to be inserted from the subsequent file (with
>> new timeline).
>
> It will be overwritten in a normal non-archive-recovery startup.

Hmm, you mean the case where the system crashes after
inserting XLOG_SWITCH and before archiving the WAL file
containing it? Okey, though it seems unlikely, XLOG_SWITCH
would be overwritten by subsequent non-archive-recovery.

I just have an idea; when the last applied WAL file has
archive_status, the system starts WAL insertion from the next
file after recovery. But, there is still race condition that the
system may crash after XLOG_SWITCH is written (fsynced)
and before .ready file is created.

Regards,

-- 
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

-- 
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