СПАСОИ (10) - Лекция №15 - Анализ и выбор архитектуры (продолжение)

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана - студенческое сообщество
Перейти к: навигация, поиск

...начало

Arrow left.png

Анализ и выбор архитектуры распределённой системы

Интероперабельные системы

Асинхронная на уровне записей без конфликтов

В рамках технологии существуют различные методы (не способы):

  1. тиражирование из первичного (где разрешается изменять данные) сервера во вторичные (где только ReadOnly);
  2. тиражирование из первичного сервера и его резервов;
  3. поточная модель тиражирования данных;
  4. иерархическая модель.
Из первичного во вторичный

Все изменения тиражируются с первичного на вторичные серверы в соответствии с подпиской.

Преимущества:

  • позволяет избежать дублирования и зацикливания. В принципе, все реплики можно сделать первичными, если снабдить каждое обновление временной меткой;
  • обеспечивает целостность БД, так как первичный сервер выполняет распространение изменение всей транзакции.

Данный метод реализован практически во всех СУБД.

Из первичного сервера или его резервов
10semSPASOIl15pic1.png

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

И первичный, и резервный сервер имеют одинаковый MAC-адрес сетевого адаптера, и этот адаптер работает на приём. Но передавать данные может только один.

Преимущество:

  • повышается надёжность системы при аппаратном сбое первичного сервера.

Недостаток:

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

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

10semSPASOIl15pic2.png

Предположим, что основной поток изменений связан с сервером из Питера. Очевидно, что для снижения нагрузки на сеть лучше сделать его первичным.

Обновление таблицы клиентами на вторичном сервере
10semSPASOIl15pic4.png

На рабочей станции инициируется выполнение хранимой процедуры с некоторыми параметрами. Процедура запускается на вторичном сервере (1). Она имеет пустое тело: вход и выход.

Но на вторичном сервере выполнена подписка сервера БД 1 на эту процедуру обновления. В соответствии с этой подпиской автоматически запускается процедура обновления на первичном сервере (2). Эта процедура уже имеет непустое тело.

Процедура выполняется, происходит обновление данных в таблице (3). Но на эти обновления подписан сервере БД 2. В соответствии с этой подпиской, данные пересылаются из master-реплики в ReadOnly-реплику (4).

Иерархическая модель
10semSPASOIl15pic3.png

Промежуточный репликационный сервер позволяет снизить нагрузку на низкоскоростную телекоммуникационную сеть.

Асинхронная пакетная репликация

Несколько шагов:

  1. на удалённом первичном сервере администратор создаёт скрипты с описанием снимков;
  2. скрипты рассылаются на серверы-подписчики;
  3. эти же скрипты автоматически запускаются на серверах-подписчиках и выполняют обновление снимков.

Теорема CAP

Согласно её, можно создать распределённую систему, которая будет:

  1. согласованной (consistent) - все операции, записи в реплике являются атомарными, и все последующие операции чтения из этой реплики видят новое значение;
  2. доступной (avaible) - БД возвращает значение из реплик;
  3. устойчивой к потере связанности (partition tolerant) - система может функционировать, если связи между группами узлов временно отсутствуют.

Но одновременно система может гарантировать только два из этих трёх свойств.

CA

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

CP

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

AP

Распределённая система, отказывающаяся от целостности результата. Хотя системы такого рода известны задолго до формулировки принципа CAP (например, распределённые веб-кэши или DNS), рост популярности систем с этим набором свойств связывается именно с распространением теоремы CAP. Так, большинство NoSQL-систем принципиально не гарантируют целостности данных. Задачей при построении AP-систем становится обеспечение некоторого практически целесообразного уровня целостности данных.