Re: SELECT FOR UPDATE без транзакции

From: Timon <timosha(at)gmail(dot)com>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general(at)lists(dot)postgresql(dot)org
Subject: Re: SELECT FOR UPDATE без транзакции
Date: 2018-04-13 11:28:49
Message-ID: CAAeC-Svao8YPHb=VJ1AV1fv1d0PcX10swuLNubVWAb569EtCyg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

>2. записываем новую запись t2
>3. аггрегатором вычисляем по t2 значение
важно понимать что на шаге 3 вы не увидите записи вставленные на шаге 2

13 апреля 2018 г., 14:24 пользователь Dmitry E. Oboukhov <unera(at)debian(dot)org>
написал:

> > Привет
> > Вы в принципе не можете сделать select вне транзакции. Если вы делаете
> > запрос вне транзакции - этот запрос будет обёрнут в отдельную транзакцию
> > автоматически.
>
> ну я примерно так и думал, просто решил уточнить :)
>
> > Не представляю зачем в вашем примере мог быть нужен s1 вообще - но да,
> > так брать блокировку возможно.
>
> Я немного неудачно пример записал.
>
> в моём случае второй запрос еще должен сделать insert в t2 на самом
> деле.
>
> то есть полеый алгоритм такой:
>
> 1. ставим лок на запись t1
> 2. записываем новую запись t2
> 3. аггрегатором вычисляем по t2 значение
> 4. модифицируем запись в t1 на которую поставили лок
>
> (условно говоря первая таблица - таблица со значениями неких
> счетчиков, вторая таблица - таблица с логом операций над счетчиками)
>
> В целом у меня подобная система работает без блокировок, но на одном
> процессе (конкурентность отстуствует). Сейчас хочу запустить второй
> параллельный процесс. Он будет очень редко пересекаться по ID записей,
> однако поскольку пересечения возможны - задумался над локами.
>
>
>
> --
>
> . ''`. Dmitry E. Oboukhov <unera(at)debian(dot)org>
> : :’ :
> `. `~’ GPG key: 4096R/08EEA756 2014-08-30
> `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756
>

--
All bugs reserved

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2018-04-13 12:20:05 Re: SELECT FOR UPDATE без транзакции
Previous Message Dmitry E. Oboukhov 2018-04-13 11:24:46 Re: SELECT FOR UPDATE без транзакции