Re: atomic multi-threaded upsert

Поиск
Список
Период
Сортировка
От Mikhail V. Puzanov
Тема Re: atomic multi-threaded upsert
Дата
Msg-id 4CF11EF7.4020605@gmail.com
обсуждение исходный текст
Ответ на Re: atomic multi-threaded upsert  (MIkhail Puzanov <misha.puzanov@gmail.com>)
Список pgsql-sql
On 25.11.2010 12:51, MIkhail Puzanov wrote:


2010/11/25 Tom Lane <tgl@sss.pgh.pa.us>
"Mikhail V. Puzanov" <misha.puzanov@gmail.com> writes:
>    -- increment and get the counter if exists
>   UPDATE sequences SET counter = counter + 1
>   WHERE section = 'testSection' AND name = 'testKey'
>   RETURNING counter;

Seems that what you have here is a bad manual implementation of a
sequence.  Why don't you use a real sequence object and nextval()?



Well, if I use the real sequence, I'll need unpredictable number of them
and will have to store mapping (section, name)->sequenceName, and
also will have to create those sequences dynamically the similar way.


Finally the problem solved with application level locks (that works for only
one application server, but suits our needs for now).

This also works http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-UPSERT-EXAMPLE but we need some more or less cross-DBMS approach.

В списке pgsql-sql по дате отправления:

Предыдущее
От: ndias
Дата:
Сообщение: Re: Insert row in 1.10.1 and 1.10.3
Следующее
От: Jorge Arenas
Дата:
Сообщение: subselect and left join not working?