Nikolay Ponomarenko wrote:

Кстати, а если абстрагироваться на более высокий уровень - хотя бы самого
соединения с БД и сокета - ведь для задачи ПАРАЛЛЕЛЬНОСТИ несколько
транзакций никак не применимы - все равно ведь они будут сериализованы,
пусть даже и на транспортном уровне, хотя конечно и уменьшат время реакции.

Идём читать букварь про одну транзакцию на коннект в многопоточных приложениях, о начальник транспортного цеха ;)

Остается только случаи необходимости именно _транзакционности_ некоторых
7> псевдо-параллельных действий, так?

Нет (или может и да, что ты имел в виду под псевдо, я не въехал), остаются вопросы:

а) Приложений, построенных не на модальных от начала до конца форточках.

бе) Элементарного удобства локализации транзакций в функциональных модулях, а не прыгания как вокруг ёлки вокруг одного датамодуля.

ве) Редактирования и коммита в вызываемых модулях и использование проделанных модификаций в вызывающих без перечитывания ВСЕГО. Например, ввод клиента в процессе ввода счёта. Можно и в одной, но замумукашься в боле-мене сложном структурно функционале отслеживать в каком состоянии была единственная транзакция на входе в модуль и надо ли её коммитить на выходе и как откатить изменения функции не откатывая изменений в вызвавшей её функции и во всех вызванных из неё ранее.

ге) Пессимистическая блокировка сложных кустовых структур с необходимостью коммить/роллбачить действительно модифицирующие транзакции на объектах внутри этой структуры.

Это просто первое что пришло в голову из того, что мы имеем. Это как щастье - понимаем, что оно было, только когда его уже нет :)

ЗЫ Материться в приличном обществе без веской на то причины не следует даже в нецитируемой подписи.

--
Regards. Ded.

Ответить