Здравствуйте, StalkerS, Вы писали:
SS>Прочитав статью на данном сайте по поводу эскалации блокировок, возник такой вопрос. В статье приведены графики зависимости производительности от грануляции обьектов для коротких и длинных транзакций. Там видно, что для длинных транзакций лучше использовать грубую грануляцию и наоборот. Сделан вывод, что эскалация — вещь полезная. Однако, так как менеджер блокировок не принимает во внимание длины транзакций, а манипулирует только обьемом доступной памяти и количеством блокировок, вполне возможна ситуация, когда при длинных транзакциях никаких эскалаций не будет, а при коротких — будут.
Нет, не так:
Таким образом, воздействие этих трех факторов приводит к тому, что в некоторых случаях, когда число блокировок велико и в системе выполняются довольно длинные транзакции, с точки зрения производительности, становится выгоднее блокировать объекты с большей гранулярностью.
Основная проблема, с которой борется эскалация — это именно число блокировок в системе, а "длинна" транзакции, в данном случае, лишь косвенный признак, который указывает на число этих самых блокировок. В статье под "длинной транзакции" подразумевалось именно это.
Более того, транзакция которая накладывает мало блокировок попросту не может быть "длинной", иначе в системе явно что-то не так.
Таким образом, количество блокировок это именно тот самый параметр, на который надо смотреть при принятии решения об эскалации.
SS>Собственно вопрос : какой практический толк от такого менеджера ?
Большой.
SS>Получается, единственный плюс от эскалаций — экономия памяти ?
Нет. Он спасает от всех проблем перечисленных в статье, основные — Data contention и объем памяти, все они критичны именно к количеству блокировок, а не к "длинне" как таковой.
P. S.
Комментарии и вопросы по статье лучше задавать непосредственно в топике предназначенном для обсуждения этой самой статьи. Из текста статьи есть ссылка на этот топик.
... [ RSDN@Home 1.1.4 rev 303 ]