Re: Proposal for 9.1: WAL streaming from WAL buffers
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-06-15T05:16:38Z
Lists: pgsql-hackers
On 15/06/10 07:47, Fujii Masao wrote: > On Tue, Jun 15, 2010 at 12:02 AM, Tom Lane<tgl@sss.pgh.pa.us> wrote: >> Fujii Masao<masao.fujii@gmail.com> writes: >>> Walsender tries to send WAL up to xlogctl->LogwrtResult.Write. OTOH, >>> xlogctl->LogwrtResult.Write is updated after XLogWrite() performs fsync. >> >> Wrong. LogwrtResult.Write tracks how far we've written out data, >> but it is only (known to be) fsync'd as far as LogwrtResult.Flush. > > Hmm.. I agree that xlogctl->LogwrtResult.Write indicates the byte position > we've written. But in the current XLogWrite() code, it's updated after > XLogWrite() calls issue_xlog_fsync(). No? issue_xlog_fsync() is only called if the caller requested a flush by advancing WriteRqst.Flush. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com