Качановский Дмитрий wrote:

я замечу, что атомарность update это обновит update все записи,
попадающие под условие, или при обломе - ни одной
-----
попробую упростить - обновить все или ничего - павильно?

Правильно.

с другой стороны про селект в статье о транзакциях (я уже приводил эту цитату), говорится, что атомарность селект

Строго говоря, нет в стандарте такого понятия.

про update найти ничего не удалось, поэтому пробую размышлять логически, изменение данных без чтения невозможно, значит сначала должен выполнится этап чтения данных с параллельным уведомлением всех что "счас буду менять вот эти данные" и _только_если_ этот этап прошел успешно можно данные менять (соответсвенно все другие будут уже знать что именно эти данные меняются и действовать согласно параметров своих транзакций)

В теории так и должно быть.

да, это понятно, но ... вообщем здесь я честно скажу не знаю как правильно вопрос задать, по большому счету меня интересуют детали что происходит внутри сервера, когда вот такое обнаруживается

Читаем запись. Проверяем предикат. Проверяем версию. Ставим EX-лок на страницу и пытаемся обновить, при этом еще раз проверяем версию. Если облом, то выбрасываем исключение и откатываемся до сейвпойнта перед апдейтом.


--
Дмитрий Еманов

Ответить