Интернет магазин китайских планшетных компьютеров



Компьютеры - Обработка транзакций - Методология

23 января 2011


Оглавление:
1. Обработка транзакций
2. Методология
3. ACID критерии



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

Откат

Откат

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

Прогон

Прогон

Кроме того, можно вести отдельный журнал всех изменений базы данных; это не требует отката неудачных операций, но это полезно для обновления базы данных в случае отказа базы данных, поэтому некоторые системы обработки транзакций обеспечивают эту функцию. Если база данных отказывает совсем, она должна быть восстановлена из последней резервной. Резервные не будут отражать операции, совершенные после ее создания. Однако, как только будет восстановлена база данных, журнал after images может быть применен к базе данных, чтобы привести ее в актуальное состояние. Любые транзакции, которые находятся в процессе на момент сбоя, могут быть свернуты. Результат представляет собой базу данных в известное согласованное состояние, которое включает результаты всех транзакций, совершенных до момента отказа.

Взаимная блокировка

Взаимная блокировка

В некоторых случаях, две транзакции могут в ходе их обработки пытаться получить доступ к одной и той же части базы данных в одно и то же время, таким образом, что это будет препятствовать их совершению. Например, транзакция А может получить доступ к части Х базы данных, и транзакция В может получить доступ к Y части базы данных. Если в этот момент транзакция А пытается получить доступ к части Y базы данных, в то время как транзакция B пытается получить доступ к части X, возникает ситуация взаимоблокировки, и ни одна транзакция не может быть произведена. Системы обработки транзакций предназначены для обнаружения таких ситуаций. Обычно обе транзакции отменяются и производится откат, а затем они автоматически запускаются в другом порядке, так что взаимоблокировка не повторится. Или иногда, только одна из транзакций, попавших в тупик, отменяется, производится откат, и автоматически повторяется после небольшой задержки.

Взаимоблокировки могут происходить между тремя или более транзакциями. Чем больше транзакции связаны, тем труднее их обнаружить. Системы обработки транзакций даже установили практическое ограничение на тупиковые ситуации, которые они могут обнаружить.



Просмотров: 2606


<<< Модель данных