Re: My very first PL/pgSQL procedure...

From: "Jim Buttafuoco" <jim(at)contactbda(dot)com>
To: Philippe Ferreira <phil(dot)f(at)worldonline(dot)fr>, Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: My very first PL/pgSQL procedure...
Date: 2006-01-28 18:15:54
Message-ID: 20060128181424.M8424@contactbda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

why not have server a start at 1 and server b start at max int8/2. that will give each server alot of orders before
you have an issue. They will will not have to play games with the sequence value.

Jim

---------- Original Message -----------
From: Philippe Ferreira <phil(dot)f(at)worldonline(dot)fr>
To: Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: jim(at)contactbda(dot)com, pgsql-general(at)postgresql(dot)org
Sent: Sat, 28 Jan 2006 17:46:55 +0100
Subject: Re: [GENERAL] My very first PL/pgSQL procedure...

> >I think you need to provide a rationale why you want to control the
> >value of the sequence in such a way anyway, because you're trying to do
> >something that the system isn't likely to support. The numbers are
> >supposed to be "opaque", the actual values are not supposed to be
> >relevent.
> >
> >Have a nice day,
> >
> >
> Hi,
>
> Actually, I'm building a switchover/failover system (based on WAL) for
> my own needs.
>
> There is no problem for the switchover, because the data is properly
> synched during
> this procedure.
>
> However, when I have to start the failover on a secondary server, some
> changes can
> be "uncommited" at the time of the failover.
> So, as soon as the primary PostgreSQL server is up again, I have to resync
> (automatically or manually) these "uncommited" changes to the failover
> node, before
> switching properly to the primary.
>
> Actually, I've got a sequence which generates order numbers. These codes
> will be
> always unique, even in case of failover, since I alter the definition of the
> sequence depending on the server (primary or secondary), with a suffix
> of 'A' or 'B'.
> For example, imagine the following scenario :
>
> ------------------------------------------------
>
> Server A : Server B :
> ========== ==========
> 1000A
> 1001A
> 1002A
> ---[SWITCHOVER]-->
> 1003B
> 1004B
> 1005B
> 1006B
> <--[SWITCHOVER]---
> 1007A
> 1008A
> 1009A
> 1010A [FAILOVER]--> 1010B
> 1011A 1011B
> 1012A -
> 1013A -
> [RESYNC]--> 1010A
> [RESYNC]--> 1011A
> [RESYNC]--> 1012A
> [RESYNC]--> 1013A
> <--[SWITCHOVER]---
> 1014A
> 1015A
>
> ------------------------------------------------
>
> So, in this example, if I don't increment the last value of my
> sequence from 1011 to 1013 (before my last "SWITCHOVER"), it
> will output "1012A" (instead of 1014A), and my new record will
> conflict with an existing one !!
>
> Thank you for your interest,
> Philippe Ferreira.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match
------- End of Original Message -------

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ken Winter 2006-01-28 18:16:32 Seeking a better PL/pgSQL editor-debugger
Previous Message Rich Shepard 2006-01-28 18:14:05 Viewing Database Scheme