Re: log shipping and nextval sequences

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Leonardo Cezar <lhcezar(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: log shipping and nextval sequences
Date: 2009-08-05 22:16:50
Message-ID: C458FDA0-29BF-4116-9F2D-C2FBA3553ABB@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Aug 5, 2009, at 3:25 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Leonardo Cezar <lhcezar(at)gmail(dot)com> writes:
>> In warm standby system when we have a filled log segment forwarded to
>> archiving, there is an inconsistency on standby next value sequences
>> obtained by a call to nextval() function. e.g.:
>
>> * Primary server
>> - Create sequence seq_a;
>> - Select nextval ( 'seq_a'); # value 1;
>> - Log shipping;
>
>> * Standby server
>> - Failover;
>> - Select nextval ( 'seq_a') on standby # value = currval + 31
>> (written ahead)
>
>> AFAIK this occurs because some fetches (log_cnt) are made in advance
>> and they are recorded in the log and shipping together.
>> Does it necessary for some kind of overhead or something like that?
>
>> Does it make sense to create a GUC to control the log_cnt amount
>> rather than SEQ_LOG_VALS approach?
>
> No. If your application expects the series not to have gaps, your
> application is broken independently of warm standby. The same sort
> of advance would happen if the master crashed and restarted.

Or if you ever roll back a transaction that has done nextval().

...Robert

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2009-08-05 22:21:18 Re: Alpha Releases: Docs?
Previous Message Todd A. Cook 2009-08-05 21:46:34 Re: slow commits with heavy temp table usage in 8.4.0