172 похожих чатов

Евгений, нельзя этого сделать. Чтобы защититься от параллельного добавления строк

в таблицу transactions нужно заблокировать предикат "WHERE user_id=?", а в постгресе так нельзя. Можно заблокировать таблицу transactions целиком, но тогда всё встрянет

8 ответов

6 просмотров

Значит остается advisory_lock как наиболее производительный вариант и все получается?

Нет, для обеспечения consistency не нужно ничего блокировать. Кроме блокировок существуют другие методы обеспечения изоляции, понимаете?

alex-che Автор вопроса
Yaroslav Schekin
Нет, для обеспечения consistency не нужно ничего б...

Сейчас я понимаю, что у автора XYZ-story, и надо уточнять, что вообще происходит, и чего хотите получить. Но тогда я ответил на конкретный вопрос: "как сделать так, чтобы на момент коммита нашей транзакции, было соответствие между записанной суммой и реальной?"

alex che
Сейчас я понимаю, что у автора XYZ-story, и надо у...

Эээ.... кого вообще волнуют "моменты"? ;) Они, строго говоря, не имеют отношения к тому, как работает изоляция примерно во всех (многопользовательских) ACID СУБД. Важно то, в каком состоянии транзакции способны увидеть базу, не более того. Т.е. если транзакция_2 выполняется параллельно "нашей транзакции", совершенно неважно, увидит она базу по состоянию до или после "нашей транзакции". Более того, во (всех?) реализациях MVCC это именно "до".

Yaroslav Schekin
Нет, для обеспечения consistency не нужно ничего б...

А что на счет lost update ? Ну допустим у меня 2 транзакции и первая завершилась позже второй, то тут снова кривой баланс?

Evgeny Kungurov
А что на счет lost update ? Ну допустим у меня 2 т...

Во-первых -- баланс в любом случае будет прямой! И в любом случае это будет прямой баланс на какой-то момент в прошлом. Во-вторых -- c read committed вторая транзакцыя дождётся результата первой. В остальных isolation level она откатится.

Ilya Anfimov
Во-первых -- баланс в любом случае будет прямой! И...

Я почему то думал что при лаге сети или еще чего-то порядок трандакций не гарантирован и вторая может завершиться раньше первой

Evgeny Kungurov
Я почему то думал что при лаге сети или еще чего-т...

Эта последовательность вообще крайне мало зависит от лагов в сети.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Кто создает тут ботов для телеграмм групп ?
Antskup
8
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
2
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Карта сайта