Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Транзакции и проблемы, связанные с ними.




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

Проблемы:

1.Проблема «утраченного обновления».

Если имеет место изменение незафиксированных данных транзакции. Незафиксированные данные транзакции еще называют «грязными» (dirty data). Следует также отметить, что феномен потерянного обновления будет наблюдаться при следующих последовательностях завершения транзакций ((T1, commit) или (T1, rollback)) и ((T2, commit) или (T2, rollback)) в любом порядке. Таким образом, полное описание данного феномена будет включать все четыре варианта завершения транзакций T1 и T2.

2.Проблема зависимости от незафиксированных обновлений.

Проблема зависимости от незафиксированных обновле­ний состоит в том, что пользователь А может увидеть данные, кото­рые уже были обновлены пользователем В, но эти обновления еще не были окончательно зафиксированы. Далее пользователь В может в силу различных причин, например из-за выявленных ошибок ввода, провести откат базы данных в исходное состояние. Пользо­ватель А в этом случае будет предпринимать действия над ошибоч­ными данными. Иногда для такого рода проблем используется тер­мин «преждевременное чтение» (Dirty read).

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

3. 3)Проблема «грязного чтения данных». Способы разрешения.

Рассмотрим следующий сценарий совместного выполнения транзакций 1 и 2. Транзакция 1 изменяет объект базы данных A. Параллельно с этим транзакция 2 читает объект A. Поскольку операция изменения еще не завершена, транзакция 2 видит несогласованные "грязные" данные (в частности, операция транзакции 1 может быть отвернута при проверке немедленно проверяемого ограничения целостности). Это тоже не соответствует требованию изолированности пользователей (каждый пользователь начинает свою транзакцию при согласованном состоянии базы данных и в праве ожидать видеть согласованные данные). Чтобы избежать ситуации чтения "грязных" данных, до завершения транзакции 1, изменившей объект A, никакая другая транзакция не должна читать объект A (минимальным требованием является блокировка чтения объекта A до завершения операции его изменения в транзакции 1).

4.Тупики.

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


Поделиться:

Дата добавления: 2015-04-18; просмотров: 108; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты