Thread: Serialize transactions

Serialize transactions

From
Ruslan A Dautkhanov
Date:
Hello all,

I have sometimes (rarely, once per some days) error during
executting different queries in PostgreSQL:
    ERROR:  Can't serialize access due to concurrent update

All my transactions use
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

I can't found nothing about this problem in the html-docs sql-set-transaction.html .

Why this happen?  How to solve this problem?
Thanks a lot.


--
 best regards,
Ruslan A Dautkhanov   rusland@scn.ru

Re: Serialize transactions

From
Tom Lane
Date:
Ruslan A Dautkhanov <rusland@scn.ru> writes:
> I have sometimes (rarely, once per some days) error during
> executting different queries in PostgreSQL:
>     ERROR:  Can't serialize access due to concurrent update
> All my transactions use
>     SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

If you use serializable mode for updating transactions, you must expect
this error and deal with it (by retrying the transaction from the top).

This is discussed in the documentation, eg at
http://www.ca.postgresql.org/users-lounge/docs/7.3/postgres/transaction-iso.html#XACT-SERIALIZABLE

You might also find it useful to go through the slides from this talk:
http://conferences.oreillynet.com/cs/os2002/view/e_sess/2681

            regards, tom lane