AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.01.2014, 16:18   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Vadik Посмотреть сообщение
Или - готов ли ты поставить всю систему в интересную позу на продолжительное время блокировками на время обновления в одной транзакции и (если не срастется) повторять пока не получится
Об этом тоже стоит подумать, но о целостности забывать не надо если разбиение на транзакции нарушает целостность надо вводить какие-то дополнительные структуры для того, чтобы она не нарушалась.
Старый 22.01.2014, 19:47   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от belugin Посмотреть сообщение
Об этом тоже стоит подумать, но о целостности забывать не надо если разбиение на транзакции нарушает целостность надо вводить какие-то дополнительные структуры для того, чтобы она не нарушалась.
Давайте для экономии времени будем исходить из того что разработчик по умолчанию знает что в данном случаем является минимальным скопом для транзакции (прошу прощения за англицизмы) и спор лишь о том стоит ли стараться придерживаться его в разработке или писать "как проще" - "ttsbegin в первой строке, ttscommit в последней" Я как человек который в итоге отвечает за весь инстанс в целом привык требовать чтобы код оттестированный в разработческой среде можно было запускать в продуктиве без переписывания (мелкие транзакции), бог весть чего в последний момент "наоптимизируют", но готов выслушать альтернативные точки зрения
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (2).
Старый 23.01.2014, 09:40   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Vadik Посмотреть сообщение
Давайте для экономии времени будем исходить из того что разработчик по умолчанию знает что в данном случаем является минимальным скопом для транзакции
Давайте исходить из предложенного примера. MikeR,
- что произойдет, если нерадивый админ кильнет aos32 на середине процесса обновления таблицы? (случится креш аоса, пропадение связи и прочее - кстати, код на сервере выполняется?)
- что произойдет если два пользователя запустят этот процесс одновременно
- используется ли на изменяемой таблице оптимистичная или пессимистичная блокировка и как измениться поведение "совсем уж мелких деталей" при этом.

P.S. По моему опыту есть некий оптимум по скорости обновления записей и он может находиться где-то между "все записи сразу" и "каждая запись отдельно". Т.е. может быть более выгодно обновлять пакетами по n записей.
Старый 23.01.2014, 10:43   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
2belugin я почему открыл обсуждение, что ОПТИМИСТИЧЕСКАЯ МОДЕЛЬ НЕ СОГЛАСУЕТСЯ С ЦЕЛОСНОСТЬЮ, даже inventTrans оптимистический. И ведомые языческами богами других систем народ продавливает производительность. Или давайте возвращаться к писиместической модели, и тогда код написанный нерадивым коллегой будет корректен. Почему нерадивым -у него посто куча разных ляпов, ключевое поле guid, допустим, об осталном уже писал. Он просто пытался подделать то, что знал из другой системы в аксапту. А здесь другая религия. Никто к пессимизму не вернется, так как по производительности будет полный провал. Хотя стоит отметить есть и другие реализации, но их мало.
__________________
Axapta book for developer
Старый 23.01.2014, 11:16   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от MikeR Посмотреть сообщение
2belugin я почему открыл обсуждение, что ОПТИМИСТИЧЕСКАЯ МОДЕЛЬ НЕ СОГЛАСУЕТСЯ С ЦЕЛОСНОСТЬЮ
Расшифруй?

Цитата:
Никто к пессимизму не вернется, так как по производительности будет полный провал.
Это завсит от вероятности коллизии на конкретной таблице. (Знаешь, почему одна модель называется оптимистической, другая пессимистической)?
Старый 26.01.2014, 16:55   #6  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от belugin Посмотреть сообщение
Расшифруй?
Там, кстати по SQL север где ссылку положили есть такое определение:
" Если пользователь пытается изменить строку, то ее текущие значения сравниваются со значениями, полученными во время последней выборки этой строки. Если какое-либо значение изменилось, то сервер определяет, что другой пользователь или процесс уже обновил эту строку, и возвращает ошибку. Если значение остается прежним, то сервер выполняет изменение."
http://technet.microsoft.com/ru-ru/l...ql.105%29.aspx
В писсимистичесой модели все становятся в очередь и терпиливо ждут первый процесс, ну или какой там тормозит. Вот это я и имел в виду, что писсимистическая в плане целостности лучше работает, чем оптимистическая. То есть оптимистическая абортирует затормозившие процессы, без стыда и совести.
__________________
Axapta book for developer
Старый 26.01.2014, 17:03   #7  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от MikeR Посмотреть сообщение
В писсимистичесой модели все становятся в очередь и терпиливо ждут первый процесс, ну или какой там тормозит. Вот это я и имел в виду, что писсимистическая в плане целостности лучше работает, чем оптимистическая. То есть оптимистическая абортирует затормозившие процессы, без стыда и совести.
Специальный тип исключения UpdateConflict и макрос OCCRetryCount в системе для красоты живут, надо полагать ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 26.01.2014, 17:20   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от MikeR Посмотреть сообщение
. То есть оптимистическая абортирует затормозившие процессы, без стыда и совести.
В этом случае предлагается повторить транзакцию.

У тебя свое определение целостности.

http://en.m.wikipedia.org/wiki/Consi...tabase_systems)

In database systems, a consistent transaction is one that starts with a database in a consistent state and ends with the database in a consistent state. Consistent state means that there is no violation of any integrity constraints. Consistency may temporarily be violated during execution of the transaction, but must be corrected before changes are permanently committed to the database. If the transaction would leave the database in an illegal state, it is aborted and an error is reported.[1]
Теги
базовая информация, транзакции

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Коллеги, что вы думаете о данном коде? MikeR DAX: Программирование 36 21.01.2014 19:38
Странное поведение при закрытии склада-ошибка в коде? Aquarius DAX: Программирование 11 27.06.2013 13:37
.NET business connector не видит изменений в коде Аксапты rkorchagin DAX: Программирование 2 22.01.2010 11:43
Нужно сделать выборку из нескольких таблиц (в данном случае из четырех). niktata DAX: Программирование 10 30.09.2008 09:42
Можно ли в коде управлять свойством Mandatory? kostas DAX: Программирование 5 10.03.2004 11:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:00.