- •Общие задачи рис: обеспечение доступа к ресурсам, прозрачность, открытость, масштабируемость. Системы промежуточного уровня.
- •Синхронизация в рис: постановка задачи. Вычисление времени на локальном компьютере.
- •Принципы применения ntp/sntp-серверов точного времени.
- •Алгоритмы взаимного исключения: постановка задачи, централизованный алгоритм, распределенный алгоритм, алгоритм кольцевого маркера.
- •Реализация распределенной транзакции в субд Oracle 12c.
- •Репликация: определение, основные понятия, непротиворечивость реплик, параллельный доступ к реплике, плотная непротиворечивость, синхронная и асинхронная репликации.
- •Распространение обновлений
- •Протоколы распределения обновлений репликации: целевая (unicasting) и групповая (multicasting) рассылки, эпидемические протоколы, антиэнтпропия.
- •Надежность рис: доступность, безотказность, безопасность, ремонтопригодность. Способы достижения надежности рис.
- •Безопасность в рис: конфиденциальность, целостность, угрозы, аутентификация, авторизация, аудит, доверенная вычислительная база. Правила и механизмы защиты рис.
- •Парадигмы построения рис. Распределенные системы объектов. Реализации распределенных систем объектов. Основные принципы построение рис на платформе corba.
Реализация распределенной транзакции в субд Oracle 12c.
Распределенная транзакция: транзакция, в которой выполняются операции в БД, расположенных на разных компьютерах (серверах).
Реализация транзакций (рабочее множество):виды блокировки зависят уровня изолированности и от совместимости
Реализация транзакций: изолированность
Пример таблицы совместимости блокировок
|
select |
insert |
update |
delete |
select |
+ |
+ |
- |
- |
insert |
|
+ |
- |
- |
update |
|
|
- |
- |
delete |
|
|
|
- |
Реализация транзакций (журнал с упреждающей записью):
Репликация: определение, основные понятия, непротиворечивость реплик, параллельный доступ к реплике, плотная непротиворечивость, синхронная и асинхронная репликации.
Репликация: механизм синхронизации, нескольких копий объекта в распределенной системе.
Репликация: процесс копирования объекта из одного места распределенной системы в другие.
Реплика: синхронизированная копия объекта – результат выполнения репликации.
Назначение репликации: масштабирование системы (повышение производительности), компоненты распределенной системы географически сильно удалены друг от друга; повышение надежности системы (поддержка актуальных копий объектов).
Основная проблема репликации: обеспечение непротиворечивости объектов-реплик. При чтении всех реплик должен быть получен один и тот же результат.
Параллельный доступ к реплике: 1) реплика, осведомлена о том, что она реплицирована – в этом случае не требуется централизованного механизма обработки параллельных обращений к объекту, сам объект обеспечивает параллельный доступ; 2) реплика, не осведомлена – требуется централизованный механизм обработки параллельных обращений к объекту.
Плотная непротиворечивость: при чтении объектов-реплик всегда один и тот же результат. Обновление всех реплик осуществляется атомарно (в рамках одной распределенной транзакции). Сложно реализуется, нужен глобальный централизованный механизм (координатор), понижает производительность.
Синхронная репликация: механизм репликации, обеспечивающий плотную непротиворечивость.
Асинхронная репликация: механизм репликации, не обеспечивающий плотную непротиворечивость.
Модели непротиворечивости: понятие непротиворечивости, строгая непротиворечивость, не строгая непротиворечивость, последовательная непротиворечивость, причинная непротиворечивость, FIFO-непротиворечивость, потенциальная непротиворечивость, монотонные чтение и запись, чтение собственных записей, запись за чтением собственных записей.
Модели непротиворечивости, ориентированные на данные
Модель непротиворечивости: контракт между процессами и хранилищем данных (по аналогии с критической секцией – контракт между, параллельными процессами).
Строгая непротиворечивость хранилища. Требует абсолютного времени.
Хранилище без строгой непротиворечивости
Модели непротиворечивости, ориентированные на данные
Модели непротиворечивости: строгая непротиворечивость - любое изменение, произошедшее раньше чтение, должно быть видно во всех репликах (см. хранилище со строгой непротиворечивости). Трудно реализуется: необходимо абсолютное время, в некоторых случаях не реализуема (если проверять реплику через наносекунду после изменения).
Модели непротиворечивости: последовательная (линейная с точным временем) непротиворечивость –
1) результат совместного выполнения должен быть такой, как будто отдельные операции процессов выполнялись последовательно;
2) последовательность выполнения операций в каждом процессе сохраняется. При линейной непротиворечивости не обеспечивается однозначный результат. Каждый процесс «видит» результат, каждой операции. Может быть реализована в случае наличия разделяемой оперативной памяти. В больших распределенных системах с распределенной оперативной памятью линейную непротиворечивость реализовать сложно.
Модели непротиворечивости: причинная непротиворечивость – ослабленный вариант последовательной непротиворечивости, который сохраняет последовательность только события, обладающие причинно-следственной связью. В простейшем случае причинно-следственные связи: 1) write(x), read(x); 2) read(x); write(y). Операции, не имеющие причинно-следственных связей, называются параллельными.
Модели непротиворечивости: FIFO (соблюдается только порядок записи в рамках процесса), слабая (требует синхронизации), свободная (требует синхронизации), поэлементная (требует синхронизации) - более слабые модели непротиворечивости.
Модели непротиворечивости: БД обеспечивают последовательную непротиворечивость, транзакционный механизм повышает непротиворечивость в зависимости от уровня изолированности, SERIALIZABLE – строгая непротиворечивость.
Модели непротиворечивости, ориентированные на клиента
Модели непротиворечивости: потенциальная непротиворечивость. Пример1: DNS, первичные и вторичные серверы (реплики DNS-серверов), изменения в первичных постепенно распространяются на вторичные серверы. Пример2: WWW – кэш браузеров (реплики страниц), серверный кэш (реплики страниц), постепенно обновляется до текущего состояния страницы. Основное свойство потенциальной непротиворечивости - в отсутствии изменений, все реплики становятся идентичными.
Модели непротиворечивости: монотонное чтение – каждое чтение, дает то же значение или более позднее, другими словами процесс не увидит предшествующего (более старого значения).
Модели непротиворечивости: монотонная запись – каждая запись в элемент X, завершится раньше, чем начнется следующая запись в элемент X - все это в рамках одного процесса.
Модели непротиворечивости: чтение собственных записей – каждая запись в элемент X, завершится раньше, чем начнется чтение их элемента X - все это в рамках одного процесса.
Модели непротиворечивости: запись за чтением собственных записей – если выполняется чтение X, а потом запись X, то изменится прочитанное значение или более свежее.
Протоколы распределения обновлений репликации: размещение реплик, постоянные реплики, инициируемые сервером, инициируемые клиентом, извещения об обновлениях, данные от одной копии к другой, активные репликации, продвижение (push) и извлечение данных (pull), аренда, гибкая аренда.
Размещение реплик: постоянные реплики; реплики, инициируемые сервером; реплики, инициируемые клиентом.
Постоянные реплики: реплики, действующие на постоянной основе в независимости от времени. Пример 1: web-серверы в кластер, кольцевое распределение запроса между серверами в кластере. Пример 2: зеркало – клиент сам выбирает сервер (например, для скачивания).
Реплики, инициируемые сервером: обычно для повышения производительности.
Реплики, инициируемые клиентом: создание клиентского кэша. Пример 1: кэш создаваемый браузером (обычно get-запросы). Пример 2: proxy-серверы.
