Re: pg_receivexlog and feedback message - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: pg_receivexlog and feedback message
Date
Msg-id CABUevEybb_XOrzxffQU3F57pLkCA=sKjBYjQsYhu6b9hktbR0w@mail.gmail.com
Whole thread Raw
In response to Re: pg_receivexlog and feedback message  (Fujii Masao <masao.fujii@gmail.com>)
Responses Re: pg_receivexlog and feedback message
List pgsql-hackers
On Sun, Jun 10, 2012 at 4:02 PM, Fujii Masao <masao.fujii@gmail.com> wrote:
> On Sun, Jun 10, 2012 at 7:55 PM, Magnus Hagander <magnus@hagander.net> wrote:
>> How about this?
>
> +                               /*
> +                                * Set flushed position to the last byte in the previous
> +                                * file. Per above we know that xrecoff%XLOG_SEG_SIZE=0
> +                                */
> +                               flushedpos = blockpos;
> +                               if (flushedpos.xrecoff == 0)
> +                               {
> +                                       flushedpos.xlogid--;
> +                                       flushedpos.xrecoff = XLogFileSize-1;
> +                               }
> +                               else
> +                                       flushedpos.xrecoff--;
>
> flushedpos.xrecoff doesn't need to be decremented by one.
> If xrecoff % XLOG_SEG_SIZE = 0, the position should be the last
> byte of previous (i.e., flushed) WAL file.

Hmm. I thikn I confused myself with "last byte written" vs "current
position". And we're dealing with current position here...

So it should just be flushedpos = blockpos and be done with it, right?

Though before I commit anything with this, we need to decide what to
wrt syncrep on that, per the other thread.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: pg_basebackup --xlog compatibility break
Next
From: Robert Haas
Date:
Subject: Re: log_newpage header comment