Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Эффекты одновременного доступа

Изменение данных пользователями может оказывать влияние на других пользователей, считывающих или изменяющих эти же данные в этот же момент времени. В этом случае говорят, что пользователи получают одновременный доступ к этим данным. Если в системе хранения данных отсутствует управление одновременным доступом, то могут наблюдаться следующие побочные эффекты.

  • Потерянные обновления.

  • Незафиксированная зависимость («грязные» операции чтения).

  • Несогласованность анализа (неповторяющееся чтение).

  • Фантомные операции чтения.

Негативные эффекты конкурентного доступа перечислены в порядке возрастания накладных расходов для борьбы с ними и уменьшения возможности одновременного доступа пользователей к данным.

Потерянные обновления

Потерянные обновления возникают, когда две или более транзакций выбирают одну и ту же строку и изменяют ее на основании ее исходного значения. Каждая транзакция не знает о других транзакциях. Последнее обновление изменяет данные других транзакций, что приводит к потере данных.

Например, у двух редакторов есть электронные копии одного и того же документа. Каждый редактор изменяет свою копию независимо и затем сохраняет ее, перезаписывая исходный документ. Редактор, сохраняющий свою измененную копию, перезаписывает изменения, сделанные другим редактором. Этой проблемы можно избежать, если у одного редактора не будет доступа к этому файлу до завершения и фиксации транзакции другого редактора.

Незафиксированная зависимость (грязные операции чтения)

Незафиксированная зависимость возникает, когда вторая транзакция считывает строку, изменяемую в данный момент другой транзакцией, таким образом вторая транзакция будет считывать данные, которые еще не зафиксированы и могут быть изменены первой транзакцией.

В Модуле 2, при изучении механизма записи данных на диск, рассматривались грязные страницы данных, то есть страницы измененные в кэше SQL Server, но еще не записанные на диск. Грязные операции чтения предполагают, что пользователь читает данные из страниц, измененных незафиксированными транзакциями, изменения которых еще могут быть отменены. Таким образом чтение происходят с грязных страниц, однако не все операции чтения с грязных страниц являются грязными. Фактически страницы могут содержать данные измененные зафиксированной транзакцией, при этом еще не сохраненные из кэша на диск.

Например, редактор изменяет электронный документ. В это время второй редактор снимает копию этого документа, включающую уже сделанные изменения, и распространяет этот документ предполагаемой аудитории. Затем первый редактор решает, что сделанные изменения неправильны, удаляет их и сохраняет документ. Распространенный документ содержит изменения, которые уже не существуют и должны считаться никогда не существовавшими. Этой проблемы можно избежать, если никто не сможет считать измененный документ, пока первый редактор не сохранит окончательную версию изменений и не зафиксирует эту транзакцию.

Несогласованность анализа (неповторяющаяся операция чтения)

Несогласованность анализа возникает, когда вторая транзакция осуществляет доступ к одной строке несколько раз, и каждый раз считывает разные данные. Несогласованность анализа сходна с незафиксированной зависимостью, когда транзакция изменяет данные, считываемые другой транзакцией. Однако при несогласованности анализа данные, считываемые второй транзакцией, были зафиксированы транзакцией, которая сделала изменения. Кроме того, несогласованность анализа подразумевает несколько операций чтения (две и более) одной строки, при которых каждый раз данные изменяются другой транзакцией, это называется также неповторяющейся операцией чтения.

Например, редактор считывает один и тот же документ дважды, но между этими операциями писатель перезаписывает этот документ. Когда редактор считывает документ во второй раз, он уже изменен. Первую операцию чтения повторить нельзя. Этой проблемы можно избежать, если писатель не сможет изменять документ, пока редактор не считает его в последний раз.

Фантомные операции чтения

Фантомные операции чтения возникают, когда операция вставки или удаления применяются к строке, которая принадлежит диапазону строк, считываемых некоторой транзакцией. Первая транзакция считывает набор строк, содержащий строку, которая уже не будет существовать при второй и последующих операциях чтения в результате ее удаления другой транзакцией. Аналогично вторая и последующие транзакции считают строку, которая не существовала при первом чтении и была вставлена другой транзакцией.

Например, редактор изменяет документ, представленный писателем, но когда издательский отдел вставляет эти изменения в главную копию документа, они обнаруживают, что автор добавил в документ новый неотредактированный материал. Аналогично ситуации с неповторяющейся операцией чтения этой проблемы можно избежать, если никто не сможет добавлять к документу новый материал до окончания работы с исходным документом редактора и издательского отдела.

Соседние файлы в предмете Информатика