Главная страница

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


Скачать 1 Mb.
НазваниеУчебное пособие издано при поддержке образовательной программы Формирование
АнкорАрхитектура распределенных систем программного обеспечения
Дата13.01.2023
Размер1 Mb.
Формат файлаdocx
Имя файлаmdwrbook.docx
ТипУчебное пособие
#885216
страница8 из 36
1   ...   4   5   6   7   8   9   10   11   ...   36

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


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

недостатком: если один из участников на самом деле не может осуществить операцию, он не в состоянии сообщить об этом координатору.





Рис.2.10.Протоколдвухфазногоподтверждения:(а)обменсообщениями, (б) конечный автомат координатора, (в) конечный автомат участника (выделены блокирующие состояния).

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

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

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

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

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

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

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

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


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

Первоначально мониторы транзакций разрабатывались для того, чтобы большие вычислительные машины могли обеспечивать мультиплексный доступ к как можно большему количеству внешних устройств (ресурсов) для как можно большего количества параллельно работающих пользователей. Частью этой задачи было обеспечение работы с параллельными процессами и надежными данными, отсюда и появилась дополнительная функциональность – транзакция.
        1. 1   ...   4   5   6   7   8   9   10   11   ...   36


написать администратору сайта