ВУЗ:
Составители:
Рубрика:
46
Лекция 5. Функция параллелизм
Восстановление данных и параллельное выполнение операций следует
рассматривать совместно, поскольку обе эти темы являются частями более общей темы,
связанной с обработкой транзакций. Однако в этой главе основное внимание уделяется
именно параллелизму. Термин параллелизм означает возможность одновременной
обработки в СУБД многих транзакций с доступом к одним и тем же данным, причем
в одно и то же время. Как известно, в такой системе для корректной обработки
параллельных транзакций без возникновения конфликтных ситуаций необходимо
использовать некоторый метод управления параллелизмом. Ниже приведены примеры
конфликтных ситуаций, возможных при отсутствии соответствующего управления.
Вначале рассмотрим некоторые проблемы, которые могут возникнуть при
отсутствии должного управления параллелизмом, а затем стандартный метод разрешения
таких проблем, т.е. метод блокировки.
Блокировка не является единственным возможным подходом в решении проблемы
управления параллелизмом, но она, несомненно, чаще других встречается на практике.
Однако с внедрением метода блокировки возникают другие проблемы; среди них
наиболее известна проблема тупиковых ситуаций, которая описывается ниже в этой
главе. Затем описывается концепция способности к упорядочению, которая определяется
как формальный критерий правильности выполнения некоторого набора параллельных
транзакций. Потом продолжается рассмотрение некоторых важных уточнений основной
идеи блокирования, а именно уровней изоляции и преднамеренной блокировки. Далее
описывается, как используются перечисленные выше понятия в стандарте языка SQL.
Отметим, что идеи параллелизма, как и идеи восстановления данных, в некоторой
степени не зависят от того, является ли СУБД реляционной или какой-либо другой.
Однако большая часть теоретической работы в этой области, как и в области
восстановления данных, выполнялась именно в некотором специализированном
реляционном контексте.
Три проблемы параллелизма
Прежде всего следует уточнить, что каждый метод управления параллелизмом
предназначен для решения некоторой конкретной задачи. Тем не менее, при обработке
правильно составленных транзакций возникают ситуации, которые могут привести к
получению неправильного результата из-за взаимных помех среди некоторых транзакций.
При этом, вносящая помеху транзакция сама по себе может быть правильной.
Неправильный конечный результат возникает по причине бесконтрольного чередования
операций из двух правильных транзакций. Основные проблемы, возникающие при
параллельной обработке транзакций следующие:
1. проблема потери результатов обновления;
2. проблема незафиксированной зависимости;
3. проблема несовместимого анализа.
Проблема потери результатов обновления
Рассмотрим ситуацию, показанную на рис. 5.1, в такой интерпретации: транзакция А
извлекает некоторый кортеж p в момент времени t
1
, транзакция В извлекает некоторый
кортеж p в момент времени t
2
, транзакция А обновляет некоторый кортеж p (на основе
значений, полученных в момент времени t
1
) в момент времени t
3
, транзакция В обновляет
тот же кортеж р (на основе значений, полученных в момент времени t
2
, которые имеют те
же значения, что и в момент времени t
1
) в момент времени t
4
. Однако результат операции
обновления, выполненной транзакцией, будет утерян, поскольку в момент времени t
4
она
не будет учтена и потому будет “отменена” операцией обновления, выполненной
Лекция 5. Функция параллелизм
Восстановление данных и параллельное выполнение операций следует
рассматривать совместно, поскольку обе эти темы являются частями более общей темы,
связанной с обработкой транзакций. Однако в этой главе основное внимание уделяется
именно параллелизму. Термин параллелизм означает возможность одновременной
обработки в СУБД многих транзакций с доступом к одним и тем же данным, причем
в одно и то же время. Как известно, в такой системе для корректной обработки
параллельных транзакций без возникновения конфликтных ситуаций необходимо
использовать некоторый метод управления параллелизмом. Ниже приведены примеры
конфликтных ситуаций, возможных при отсутствии соответствующего управления.
Вначале рассмотрим некоторые проблемы, которые могут возникнуть при
отсутствии должного управления параллелизмом, а затем стандартный метод разрешения
таких проблем, т.е. метод блокировки.
Блокировка не является единственным возможным подходом в решении проблемы
управления параллелизмом, но она, несомненно, чаще других встречается на практике.
Однако с внедрением метода блокировки возникают другие проблемы; среди них
наиболее известна проблема тупиковых ситуаций, которая описывается ниже в этой
главе. Затем описывается концепция способности к упорядочению, которая определяется
как формальный критерий правильности выполнения некоторого набора параллельных
транзакций. Потом продолжается рассмотрение некоторых важных уточнений основной
идеи блокирования, а именно уровней изоляции и преднамеренной блокировки. Далее
описывается, как используются перечисленные выше понятия в стандарте языка SQL.
Отметим, что идеи параллелизма, как и идеи восстановления данных, в некоторой
степени не зависят от того, является ли СУБД реляционной или какой-либо другой.
Однако большая часть теоретической работы в этой области, как и в области
восстановления данных, выполнялась именно в некотором специализированном
реляционном контексте.
Три проблемы параллелизма
Прежде всего следует уточнить, что каждый метод управления параллелизмом
предназначен для решения некоторой конкретной задачи. Тем не менее, при обработке
правильно составленных транзакций возникают ситуации, которые могут привести к
получению неправильного результата из-за взаимных помех среди некоторых транзакций.
При этом, вносящая помеху транзакция сама по себе может быть правильной.
Неправильный конечный результат возникает по причине бесконтрольного чередования
операций из двух правильных транзакций. Основные проблемы, возникающие при
параллельной обработке транзакций следующие:
1. проблема потери результатов обновления;
2. проблема незафиксированной зависимости;
3. проблема несовместимого анализа.
Проблема потери результатов обновления
Рассмотрим ситуацию, показанную на рис. 5.1, в такой интерпретации: транзакция А
извлекает некоторый кортеж p в момент времени t1, транзакция В извлекает некоторый
кортеж p в момент времени t2, транзакция А обновляет некоторый кортеж p (на основе
значений, полученных в момент времени t1) в момент времени t3, транзакция В обновляет
тот же кортеж р (на основе значений, полученных в момент времени t2, которые имеют те
же значения, что и в момент времени t1) в момент времени t4. Однако результат операции
обновления, выполненной транзакцией, будет утерян, поскольку в момент времени t4 она
не будет учтена и потому будет “отменена” операцией обновления, выполненной
46
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »
