Re: Sequences in transaction

From: Mike Castle <dalgoda(at)ix(dot)netcom(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Sequences in transaction
Date: 2000-12-04 23:29:43
Message-ID: 20001204172943.B19340@thune.mrc-home.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Dec 04, 2000 at 05:56:04PM -0500, Camm Maguire wrote:
> Greetings! I've run into this too, and it appears to me not to roll
> back either. A pity, as it forced us to make a separate table to hold
> the last sequence value and update the table in a trigger.

This is a dangerous thing if you ever have more than one update going on.

One transaction reads the value, increments it, saves it back. Another
transaction does the same thing. Now you have two transactions trying to
use the same value. Sure, one will probably fail a uniqueness constraint,
but then you have to increment again. Meanwhile, another transaction comes
in and steals the next number, and one of the first two clashes again. And
again. And again. And again. You have NO way of guaranteeing that
starvation will never be an issue.

Solution:

Don't require that your sequence values be absolutely sequential. They're
there to ensure uniquness and order. Not to be used as counters.

mrc
--
Mike Castle Life is like a clock: You can work constantly
dalgoda(at)ix(dot)netcom(dot)com and be right all the time, or not work at all
www.netcom.com/~dalgoda/ and be right at least twice a day. -- mrc
We are all of us living in the shadow of Manhattan. -- Watchmen

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mike Castle 2000-12-04 23:41:08 Re: Why PostgreSQL is not that popular as MySQL?
Previous Message Stephan Szabo 2000-12-04 23:22:54 Re: strange query plans