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:
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.
2010/11/25 Tom Lane <tgl@sss.pgh.pa.us>"Mikhail V. Puzanov" <misha.puzanov@gmail.com> writes:Seems that what you have here is a bad manual implementation of a
> -- increment and get the counter if exists
> UPDATE sequences SET counter = counter + 1
> WHERE section = 'testSection' AND name = 'testKey'
> RETURNING counter;
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 по дате отправления: