![]() |
|
Взаимные блокировки | ☑ | ||
---|---|---|---|---|
0
Широкий
15.05.12
✎
13:37
|
Не могу придумать, как смоделировать сие.
При этом режим блокировки конфы управляемый и без программных блокировок |
|||
1
Широкий
15.05.12
✎
14:01
|
ап
|
|||
2
Лоботряс
15.05.12
✎
14:05
|
Два документа с прямым и обратным порядком проведения по нескольким регистрам.
|
|||
3
Широкий
15.05.12
✎
14:21
|
(2) Тут максимум что будет - это превышено время ожидания транзакции
|
|||
4
Stepa86
15.05.12
✎
14:27
|
(3) как раз дедлок и будет
|
|||
5
Широкий
15.05.12
✎
14:28
|
(4) в (0) "При этом режим блокировки конфы управляемый и без программных блокировок"
Точно ли ? |
|||
6
Stepa86
15.05.12
✎
14:32
|
(5) ну регистры то лочаться при записи по любому
|
|||
7
Широкий
15.05.12
✎
14:35
|
(6) Только на время чтения/записи
|
|||
8
Stepa86
15.05.12
✎
14:42
|
конфа: http://dl.dropbox.com/u/67530172/1Cv8.dt
запускаешь 2 сеанса, один из них в отладке ставишь в одном доке точку останова после записи первого регистра, проводишь док, чтоб встало на нее во втором сеансе запускаешь проведение второго дока, как там все подвисает, F5 в отладчике - http://screencast.com/t/E6Geve28kGdp |
|||
9
Лоботряс
15.05.12
✎
14:44
|
режим транзакции ведь READ-WRITE по-любому
|
|||
10
Широкий
15.05.12
✎
15:06
|
(8) Спасибо
|
|||
11
Stepa86
15.05.12
✎
15:14
|
(10) обращайся, чо =)
|
|||
12
Широкий
15.05.12
✎
15:34
|
(11) В файловов и серверном варианте уровни изоляции одинаковы?
|
|||
13
Stepa86
15.05.12
✎
15:43
|
||||
14
Лоботряс
15.05.12
✎
15:43
|
(12) разные, насколько я помню
|
|||
15
rs_trade
15.05.12
✎
15:45
|
(9) че за режим такой?
|
|||
16
Лоботряс
15.05.12
✎
16:03
|
(15)разрешены чтение и модификация записей
|
|||
17
Лоботряс
15.05.12
✎
16:04
|
а два READ-WRITE в один момент времени существовать не могут
|
|||
18
Широкий
15.05.12
✎
16:29
|
(13) Ну значит если убрать автоматическую очистку движухи и принудительную запись наборов записей - то в скуле блокировка не возникнет (по крайне мере исходя из твоего пример)
|
|||
19
Stepa86
15.05.12
✎
16:34
|
(18) должно возникнуть, если по одному и тому же набору измерений писать
|
|||
20
Широкий
15.05.12
✎
16:36
|
(19) Думаешь возникнет? Движуху то мы отдаем 1с записывать
|
|||
21
Stepa86
15.05.12
✎
16:46
|
(20) ну чтоб наверняка, можно еще проверку на отрицательные значения воткнуть после каждой записи... залочит по набору с вероятностью в 146%.
Так же по умолчанию скуль вроде б по диапазону лочит, это если не прописывать блокировку данных в 1Ске. а вообще от анализа дедлоков на теоретическом уровне у меня крышу сносит постоянно |
|||
22
Широкий
15.05.12
✎
16:56
|
(21) В твоем примере дедлок вознкает потому, что в каждом документе дважды принудительно записываем набор записей. Если между этими записями вклинится - то пичаль, т.в файловом варианте блокировки накидываются на таблицу.
Если же сделать как в (18).. То наборы записываются один раз. Перехлеста не будет.. Плюс в скуле блокировки на запиь и считывание данных запросом блокировку не делает |
|||
23
Stepa86
15.05.12
✎
17:03
|
(22) >>считывание данных запросом блокировку не делает
делают. Защита от фантомов. Если убрать принудительную запись наборов, то дедлоков есессно не будет, так как не будет взаимозахвата ресурсов, и этого дедлока даж в файловой не будет |
|||
24
Широкий
15.05.12
✎
17:07
|
(23) Read commited, но после отработки запроса она снимается
|
|||
25
Stepa86
15.05.12
✎
17:10
|
(24) пофик когда снимается, главное, что ставиться и может привести к пичальке
|
|||
26
Широкий
15.05.12
✎
17:15
|
(25) Не могу придумать как такое возможно
|
|||
27
Stepa86
15.05.12
✎
17:27
|
(26) у меня было, простой запрос с ГДЕ таблица.Реквизит = &Реквизит лочил таблицу при чтении. Решилось тогда добавлением индекса на этот реквизит. Чо там происходило уже не помню
|
|||
28
Широкий
15.05.12
✎
17:32
|
(27) Он и лочит.. но не до дедлока. а индекс добавил - просто быстрее данные полуать стал
|
|||
29
Stepa86
15.05.12
✎
17:38
|
(28) разница в скорости там была незначительная, а ЦУПом и тест-центром я это дело нормально так гонял - до 50 одновременных потоков в одни и те же данные. и там был точно дедлок, а не таймаут
|
|||
30
МихаилМ
15.05.12
✎
19:16
|
то, что в 2005 было deadlock d 2008.. - timeuot
|
|||
31
Широкий
17.05.12
✎
14:23
|
Подниму тему..
В серверном варианте без программных блокировок так и не удалось дед-лок получить |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |