Тема_9 (1122360), страница 4
Текст из файла (страница 4)
Базы данных50УправлениМетоды сериализации транзакций(15)Синхронизационныеблокировки (10)Но при использовании для блокировок крупныхобъектов возрастаети, тем самым,вероятность конфликтов транзакцийуменьшается допускаемая степень чередования ихопераций или реального параллельного выполненияФактически, при укрупнении объектасинхронизационной блокировки мы умышленноогрубляем ситуацию и видим конфликты в техситуациях, в которых на самом деле конфликтовнет03.12.2009С.Д.Кузнецов.
Базы данных51УправлениМетоды сериализации транзакций(16)Синхронизационные(11) с использования Разработчики многихблокировкисистем начиналистраничных блокировок, полагая это некоторымкомпромиссом между стремлениями сократить накладныерасходы и сохранить достаточно высокий уровеньпараллельности транзакцийНо это не очень хороший выборИспользование страничных блокировок в двухфазномпротоколе иногда вызывает очень неприятныесинхронизационные проблемы, усложняющие организациюСУБД эти проблемы связаны с тем, что страницы приходитсяблокировать на двух разных уровняхooуровне управления буферами страниц в основной памяти иуровне выполнения логических операцийВ большинстве современных систем используютсяпокортежные синхронизационные блокировки03.12.2009С.Д.Кузнецов.
Базы данных52УправлениМетоды сериализации транзакций(17)Синхронизационныеблокировки (12)Но при этом возникает очередной вопросЕсли единицей блокировки является кортеж, токакие синхронизационные блокировкипотребуются при выполнении таких операций какуничтожение заполненной таблицы?Было бы довольно нелепо перед выполнениемтакой операции потребовать блокировки всехсуществующих кортежей таблицыКроме того, это не предотвратило бывозможности параллельной вставки новогокортежа в уничтожаемое отношение в некоторойдругой транзакции03.12.2009С.Д.Кузнецов. Базы данных53УправлениМетоды сериализации транзакций (18)Синхронизационные блокировки (13)Гранулированные синхронизационные блокировки (1)Подобные рассуждения привели к разработке механизмагранулированных синхронизационных блокировокПри применении этого подхода синхронизационныеблокировки могут запрашиваться по отношению к объектамразного уровня:требуемый уровень объекта определяется тем, какаяоперация выполняетсяфайлам, таблицам и кортежамнапример, для выполнения операции уничтожения таблицыобъектом синхронизационной блокировки должна быть всятаблица, а для выполнения операции удаления кортежа – этоткортежОбъект любого уровня может быть заблокирован в режиме Sили X03.12.2009С.Д.Кузнецов.
Базы данных54УправлениМетоды сериализации транзакций (19)Синхронизационные блокировки (14)Гранулированные синхронизационные блокировки (2)Для согласования блокировок разного уровнявводятся специальный протоколгранулированных блокировок и новые типыблокировокКоротко говоря, перед установкой блокировки нанекоторый объект базы данных в режиме S или Xсоответствующий объект верхнего уровнядолжен быть заблокирован в режиме IS, IX илиSIXЧто же собой представляют эти режимыблокировок?03.12.2009С.Д.Кузнецов. Базы данных55УправлениМетоды сериализации транзакций (20)Синхронизационные блокировки (15)Гранулированные синхронизационные блокировки (3)Блокировка в режиме ISнекоторого составного объекта o базы данныхозначает намерение заблокировать некоторыйобъект o', входящий в o, в совместном режимеIntented for Shared lockрежиме SНапример, при намерении читать кортежи изтаблицы Tab эта таблица должна бытьзаблокирована в режиме ISа до этого в таком же режиме должен бытьзаблокирован файл, в котором располагается таблицаTab03.12.2009С.Д.Кузнецов.
Базы данных56УправлениМетоды сериализации транзакций (21)Синхронизационные блокировки (16)Гранулированные синхронизационные блокировки (4)Блокировка в режиме IXнекоторого составного объекта o базы данныхозначает намерение заблокировать некоторыйобъект o', входящий в o, в монопольном режимеIntented for eXclusive lockрежиме XНапример, для удаления кортежей из таблицыTab эта таблица должна быть заблокирована врежиме IXа до этого в таком же режиме должен бытьзаблокирован файл, в котором располагается таблицаTab03.12.2009С.Д.Кузнецов. Базы данных57УправлениМетоды сериализации транзакций (22)Синхронизационные блокировки (17)Гранулированные синхронизационные блокировки (5)Блокировка в режиме SIX Shared, Intented for eXclusive lockнекоторого составного объекта o базы данных означаетсовместную блокировку всего этого объекта с намерениемвпоследствии блокировать какие-либо входящие в негообъекты в монопольном режиме режиме XНапример, если выполняется длинная операция просмотратаблицы Tab с возможностью удаления некоторыхпросматриваемых кортежей, то экономичнее всегозаблокировать таблицу Tab в режиме SIX а до этого заблокировать в режиме IS файл, в которомрасполагается таблица Tab03.12.2009С.Д.Кузнецов.
Базы данных58УправлениМетоды сериализации транзакций (23)Синхронизационные блокировки (18)Гранулированные синхронизационные блокировки (6)Таблица совместимостиблокировок S, X, IS, IX иSIXПоясним правиласовместимостиДля атомарных объектовразумны только блокировкив режимах S и X, для которых правиласовместимости остаются такими же, как преждеПусть теперь o – это некоторый составнойобъект03.12.2009С.Д.Кузнецов.
Базы данных59УправлениМетоды сериализации транзакций (24)Синхронизационные блокировки (19)Гранулированные синхронизационные блокировки (7)Тогда блокировка объекта oв режиме X в транзакции T1не совместима с блокировкойэтого объекта в режимах X, S,IX, IS или SIX в транзакции T2Действительно, блокировкаобъекта o в режиме X втранзакции T1 направлена на то, чтобы изменятьобъект o целикомНесовместимость блокировки объекта o врежиме X в транзакции T1 с его блокировкой врежиме X или IX в транзакции T2 устраняетконфликты транзакций T1 и T2 вида W/W03.12.2009С.Д.Кузнецов. Базы данных60УправлениМетоды сериализации транзакций (25)Синхронизационные блокировки (20)Гранулированные синхронизационные блокировки (8)Несовместимостьблокировки объекта o врежиме X в транзакции T1 сего блокировкой в режиме Sили IS в транзакции T2устраняет конфликтытранзакций T1 и T2 вида W/RНаконец, несовместимость блокировки объекта oв режиме X в транзакции T1 с его блокировкой врежиме SIX в транзакции T2 устраняетконфликты транзакций T1 и T2 вида W/R и W/W03.12.2009С.Д.Кузнецов.
Базы данных61УправлениМетоды сериализации транзакций (26)Синхронизационные блокировки (21)Гранулированные синхронизационные блокировки (9)Блокировка объекта o врежиме S в транзакции T1совместима с блокировкойэтого объекта в режимах Sили IS в транзакции T2,поскольку эти блокировки в транзакциях T1 иT2 направлены только на то, чтобы толькочитать некоторые объекты o', входящие в o03.12.2009С.Д.Кузнецов. Базы данных62УправлениМетоды сериализации транзакций (27)Синхронизационные блокировки (22)Гранулированные синхронизационные блокировки (10)Блокировка объекта o врежиме S в транзакции T1не совместима сблокировкой этого объектав режимах X, IX или SIX втранзакции T2, поскольку любая из этих блокировокнаправлена на то, чтобы изменять в транзакции T2 объект oцеликом или какой-либо объект o', входящий в oНесовместимость блокировки объекта o в режиме S втранзакции T1 с блокировкой этого объекта в режимах X, IXили SIX в транзакции T2, тем самым, устраняет конфликтытранзакций T1 и T2 вида R/W03.12.2009С.Д.Кузнецов.
Базы данных63УправлениМетоды сериализации транзакций (28)Синхронизационные блокировки (23)Гранулированные синхронизационные блокировки (11)Блокировка объекта o врежиме IХ в транзакции T1совместима с блокировкойэтого же объекта в режимахIS или IX в транзакции T2Действительно, блокировкаобъекта o в режиме IX в транзакции T1направлена на то, чтобы в этой транзакцииизменять какой-либо объект o', входящий в o, аблокировка этого же объекта в режиме IS втранзакции T2 – на то, чтобы читать в транзакцииT2 какой-либо объект o'', входящий в o03.12.2009С.Д.Кузнецов.
Базы данных64УправлениМетоды сериализации транзакций (29)Синхронизационные блокировки (24)Гранулированные синхронизационные блокировки (12)Если объекты o' и o'' – разные,то конфликт транзакций T1 иT2 не возникнет. Если o' = o'',то перед изменением этотобъект будет заблокирован втранзакции T1 в режиме X, аперед чтением – в транзакцииT2 в режиме SНесовместимость этих блокировок позволит избежатьконфликта транзакций T1 и T2 вида W/R, и для этого нетребуется несовместимость блокировок IX и IS объекта oАналогично обосновывается совместимость блокировок IX иIX03.12.2009С.Д.Кузнецов. Базы данных65УправлениМетоды сериализации транзакций (30)Синхронизационные блокировки (25)Гранулированные синхронизационные блокировки (13)Блокировка IХ несовместима с блокировкой S,поскольку иначе мог быпроявиться конфликттранзакций T1 и T2 вида W/RБлокировка IХ не совместимас блокировкой X, посколькуиначе мог бы проявиться конфликт транзакцийT1 и T2 вида W/WНаконец, блокировка IХ не совместима сблокировкой SIX, поскольку иначе мог быпроявиться конфликт транзакций T1 и T2 видаW/R или W/W03.12.2009С.Д.Кузнецов.
Базы данных66УправлениМетоды сериализации транзакций (31)Синхронизационные блокировки (26)Гранулированные синхронизационные блокировки (14)Блокировка объекта o в режиме IS втранзакции T1 совместима сблокировкой этого же объекта врежимах S, IS, IX или SIX втранзакции T2Совместимость с блокировкой врежиме S или IS уже обосновываласьПокажем, что блокировка объекта o врежиме IS в транзакции T1 совместима сблокировкой того же объекта в режиме IX в транзакции T2Действительно, блокировка объекта o в режиме IS в транзакции T1направлена на то, чтобы в этой транзакциичитать какой-либо объект o', входящий в o,а блокировка этого же объекта в режиме IX в транзакции T2 – на то,чтобы в транзакции T2изменять какой-либо объект o'', входящий в o03.12.2009С.Д.Кузнецов. Базы данных67УправлениМетоды сериализации транзакций (32)Синхронизационные блокировки (27)Гранулированные синхронизационные блокировки (15)Если объекты o' и o'' – разные,то конфликт транзакций невозникнетЕсли o' = o'', то перед чтением этотобъект будет заблокирован втранзакции T1 в режиме S, а передизменением – в транзакции T2 врежиме XНесовместимость этих блокировок позволит избежатьконфликта транзакций T1 и T2 вида R/W, и для этого нетребуется несовместимость блокировок IS и IX объекта oАналогично можно показать совместимость блокировок IS иSIXНесовместимость блокировок IS и X очевидна, посколькуиначе мог бы проявиться конфликт транзакций T1 и T2 видаR/W03.12.2009С.Д.Кузнецов.