Протоколы подтверждения транзакции 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Протоколы подтверждения транзакции



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

Протокол двухфазного подтверждения (2PC) строится из двух фаз, каждая из которых включает в себя два шага. Первая фаза называется фазой голосования и состоит из шагов 1 и 2, вторая фаза (фаза решения) состоит из шагов 3 и 4:

1. Координатор рассылает участникам запрос голосования.

2. Участник после получения запроса подает свой голос координатору о том, что он готов подтвердить свою часть транзакции (проголосовать "за"), либо отказаться от такого подтверждения (проголосовать "против").

3. Координатор собирает ответы всех участников. Если все участники подтвердили транзакцию, координатор начинает выполнять соответствующие действия и посылает всем участникам свое решение – провести подтверждение транзакции. Однако если хотя бы один участник отказался подтвердить свою часть транзакции, координатор рассылает всем указание отмены транзакции.

4. Если участник, проголосовавший за подтверждение, получает подтверждение от координатора, он подтверждает транзакцию (выполняет свои внутренние действия по ее завершению). В случае же получения указания отмены выполнение транзакции прекращается.

Проблемы возникают, если при использовании двухфазного подтверждения в системе возникают ошибки. Координатор и другие участники имеют такие состояния, в которых они блокируются и ждут поступления сообщений извне. Если в работе координатора возникнет ошибка, работа протокола нарушается, поскольку другие процессы будут бесконечно ожидать сообщений. Для исправления ситуации вводится механизм тайм-аута. Если в течение некоторого времени сообщения о сводных результатах голосования от координатора не поступают прочим участникам, они приходят к выводу о необходимости прервать свою работу и послать координатору сообщение об отказе от подтверждения (проголосовав "против").

Из-за сбоев в работе самого координатора для протокола 2РС характерно наличие ситуации, когда участнику приходится блокироваться до восстановления работоспособности этого координатора. Такая ситуация возникает, когда все участники успевают получить запрос голосования, но после этого координатор выходит из строя. В этом случае участники даже совместно не состоянии решить, каким образом продолжить работу далее.

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

Транзакционные мониторы

Для реализации транзакций применяются специальные программные системы – транзакционные мониторы, лежащие в основе множества многоярусных систем. Транзакционные мониторы появились раньше систем типа "клиент/сервер" и трехъярусных архитектур. Наиболее известным монитором транзакций является система CICS, разработанная фирмой IBM в конце 60-х годов и используемая до сих пор.

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



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 421; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.81.240 (0.005 с.)