Способы реализации протокола 2ФФ
Существует три способа реализации. Существуют различные подходы к реализации протокола 2ФФ 1. Традиционная схема реализации протокола 2ФФ: подразумевает передачу 4N сообщений (N- кол-во участников)
Рисунок 5 – Традиционная схема реализации протокола 2ФФ 2. Линейная схема реализации протокола 2ФФ: согласно этой схеме координатор отправляет команду PREPARE вместе со списком участников только одному участнику. Участник 1 передает след участнику полученный пакет + COMMIT/ABORT. Последний участник отправляет обратное сообщение об общем решении. Кол-во передаваемых сообщений 2N. Снижается параллельность выполнения транзакции. Данная схема применима для сети с небольшим количеством узлов. Для повышения эффективности необходимо, чтобы последний участник посылал широковещательное сообщение о глобальном решении.
Рисунок 6 – Линейная схема реализации протокола 2ФФ 3. Распределенная схема реализации протокола 2ФФ: все узлы, получив от координатора команду PREPARE, рассылают всем участникам сведения о своем решении. Как только узел получает все подтверждения готовности к фиксации, он фиксирует свою часть транзакции. Если он получает хотя бы одно сообщений ABORT, то он откатывает транзакцию, фаза принятия решения при этом отсутствует.
Рисунок 7 – Распределенная схема реализации протокола 2ФФ ACID свойства транзакции
· Atomicity – атомарность (неделимость): представляет собой единое целое транзакции. · Consistency – согласованность: транзакция является согласованной, так как не нарушает бизнес логику и отношений между элементами данных. · Isolation – изолированность: результаты одних транзакций не зависят от предыдущих или последующих транзакций. · Durability – долговечность (устойчивость): после завершения транзакции она сохраняется в системе и ничто не может вернуть базу данных в начальное состояние. Все свойства выполняет сервер самостоятельно. Транзакция должна быть небольшой по объему. Блокировки Повышение эффективности работы при использовании небольших транзакций связано с тем, что при выполнении транзакции сервер накладывает на данные блокировки. Блокировкой называется временное ограничение на выполнение некоторых операций по обработке данных. Блокировка может быть наложена как на отдельную строку таблицы, так и на всю БД. Управлением блокировками на сервере занимается менеджер блокировок. Транзакции и блокировки тесно связаны друг с другом. Транзакции накладывают блокировки на данные, чтобы обеспечить выполнение требований ACID. Блокировка представляет собой метод управления параллельными процессами, при котором объект БД не может быть изменен без ведома транзакции. Происходит блокирование доступа к объекту со стороны других транзакций. Различают два вида блокировки: 1. блокировка записи: транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим строкам будет отменен; 2. блокировка чтения: транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции на блокировку записи этих строк будет отвергнут, а на блокировку чтения принят. СУБД используют протокол доступа к данным, который позволяет избежать проблемы параллелизма. Суть протокола:
1. транзакция, результатом действия которой на строку данных в таблице является ее извлечение, обязана наложить блокировку чтения на эту строку; 2. транзакция, предназначенная для модификации строки данных, накладывает на нее блокировку записи; 3. если запрашиваемая блокировка на строку отвергается из-за уже имеющейся блокировки, то транзакция переводится в режим ожидания до тех пор, пока блокировка не будет снята; 4. блокировка записи сохраняется до конца выполнения транзакции. Если выполнение блокировками в СУБД не реализовано, то возможны следующие проблемы: 1. проблема последнего изменения (когда несколько пользователей изменяют одну троку на основе первоначальных данных, в этом случае происходит потеря части данных); 2. проблема «грязного» чтения (когда один пользователь начал изменять данные и изменил только часть данных, а другие пользователи считывают данные, которые являются некорректными); 3. проблема неповторяемого чтения (между запросами выборки выполняются запросы на изменение, при этом получаются не соответствующие выборки данных); 4. проблема чтения фантомом (запрос выполняет выборку, а другой выполняет добавление/удаление записей). Для решения этих проблем в специально разработанном стандарте определены 4 уровня блокирования. Каждый последующий уровень поддерживает требования предыдущего и плюс дополнительные ограничения. · Уровень 0 «Запрет загрязнения данных»: первая транзакция на изменения должна выполниться, а остальные ждать ее; · Уровень 1 «Запрет «грязного» чтения»; · Уровень 2 «Запрещение неповторяемого чтения»; · Уровень 3 «Запрещение фантомов». Мульти базовые системы МБС – это распределенная СУБД, в которой управление каждым из узлов осуществляется автономно. МБС позволяют получить доступ и совместно использовать данные без интеграции существующих баз. МБС обеспечивают пользователям возможность управлять БД их собственных узлов без централизованного контроля (который характерен для распределенных СУБД). Администратор локальной БД может разрешить доступ, к определенной части своей БД, используя схему экспорта. Схема экспорта определяет, к каким элементам локальной БД смогут получать доступ внешние пользователи. Существую необъединенные (не имеющие локальных пользователей) и объединенные МБС.
Объединенная система – это гибрид распределенной и централизованной систем. Она выглядит как распределенная для удаленных пользователей и в тоже время является централизованной для локальных пользователей. МБС поддерживают так называемую глобальную схему. На основании этой схемы пользователи могут формировать запросы и модифицировать данные. Глобальная схема создается путем объединения схем локальных БД. ПО МБС предварительно транслирует глобальные запросы и превращает их в запросы и операторы модификации данных соответствующих локальных СУБД. Результаты, полученные после запроса, сливаются в глобальную схему (результирующий набор), который предоставляется конечному пользователю. Параллельные СУБД ПСУБД – это система управления базой данных, функционирующей с использованием нескольких процессоров и жестких дисков. Это позволяет СУБД распараллеливать выполнение нескольких операций с целью повышения общей производительности обработки. ПСУБД позволяют объединить несколько маломощных компьютеров с целью получения того же уровня производительности как у одного более мощного компьютера. Существует три основных типа архитектуры параллельных СУБД: 1. ПСУБД с разделением памяти; 2. ПСУБД c разделением дисков; 3. ПСУБД без разделения вычислительных ресурсов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|