Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Выбор координатора распределенной транзакции в РБД





 

1. Цель работы: изучить методику выбора координатора распределенной транзакции в РБД.

 

Базовые сведения

 

Транзакция в РБД называется распределенной, если в ее выполнении участвуют два и более SQL – сервера. Координатором распределенной транзакции называется сервер, выполняющий следующие действия:

- рассылка серверам – соисполнителям локальных запросов и сбор результатов этих запросов;

- назначение Координаторов для распределенных запросов и сбор результатов этих запросов;

- передача результатов распределенной транзакции серверу – источнику этой транзакции.

В данной работе предполагается, что известно размещение таблиц РБД на нескольких SQL-серверах. Для выполнения распределенной транзакции назначается сервер – координатор транзакции (Координатор), вообще говоря, отличный от сервера- источника транзакции. Назначенный Координатор считается Источником для всех запросов, входящих в транзакцию. После выполнения транзакции ее результаты Координатор передает Источнику распределенной транзакции. Таким образом, с выполнением распределенной транзакции связан определенный объем передаваемых по сети данных (передачей самих запросов по сети при этом можно пренебречь). Требуется так выбрать Координатора распределенной транзакции, чтобы минимизировать суммарный объем передаваемых по сети данных.

Рассмотрим следующий пример. В базе данных имеется две таблицы: Т1 и Т2. Для работы с базой данных выделены два SQL –сервера: С1 и С2. На сервере С1 размещена таблица Т1, на сервере С2 - таблица Т2. При выполнении распределенной транзакции требуется последовательно выполнить запросы Зап(Т1), Зап(Т1,Т2), Зап(Т2). По запросам Зап(Т1), Зап(Т2) формируются результаты объема соответственно Д1, Д2, а по распределенному запросу Зап(Т1,Т2) формируются результаты локальных подзапросов ДР1, ДР2 и общий результат ДР. Результат выполнения транзакции формируется из полученных данных и имеет объем ДТ. Для данного примера Координатор транзакции выполняет следующие действия:

- посылает запрос Зап(Т1) серверу С1 и получает от него ответ объема Д1;

- назначает Координатора для распределенного запроса Зап(Т1,Т2) и получает от него ответ объема ДР;

- посылает запрос Зап(Т2) серверу С2 и получает от него ответ объема Д2.

- формирует общий результат объема ДТ и посылает его серверу – источнику транзакции.

В данном случае требуется рассмотреть 4 ситуации в зависимости от того, какой сервер является источником транзакции и какой сервер назначен координатором транзакции. Для каждой ситуации общий объем передаваемых данных обозначим ОПДРХХ, где ХХ – двухразрядное целое число, первая цифра которого – номер сервера источника транзакции, а вторая цифра – номер координатора транзакции.

1. Источником и Координатором транзакции является сервер С1. В этом случае С1 считается источником запросов Зап(Т1), Зап(Т2) и поэтому ему должны быть переданы данные объемом Д2. Для выполнения запроса Зап(Т1,Т2) должен быть назначен координатор запроса В зависимости от его выбора серверу С1 будут переданы данные объема либо ОПД11, либо ОПД12 (см. практическую работу № 2). При оптимальном выборе координатора запроса серверу С1 будут переданы данные объема ОПДТ1=Min(ОПД11, ОПД12). Таким образом, полный объем данных, переданных при выполнении транзакции, равен ОПДТ11=Д2+ОПДТ1.

2. Источником и координатором транзакции является сервер С2. В этом случае С2 считается источником запросов Зап(Т1), Зап(Т2) и поэтому ему должны быть переданы данные объемом Д1. Для выполнения запроса Зап(Т1,Т2) должен быть назначен координатор запроса В зависимости от его выбора серверу С2 будут переданы данные объема либо ОПД21, либо ОПД22 (см. практическую работу № 2). При оптимальном выборе координатора запроса серверу С2 будут переданы данные объема ОПДТ2=Min(ОПД21, ОПД22). Таким образом, полный объем данных, переданных при выполнении транзакции, равен ОПДТ22=Д1+ОПДТ2.

3. Источником транзакции является сервер С1, а координатором – сервер С2. В этом случае полный объем переданных данных состоит из двух слагаемых: ОПДТ22 и ДТ, т.к. результаты транзакции должны быть переданы серверу С1. Таким образом, ОПДТ12=ОПДТ22+ДТ.

4. Источником транзакции является сервер С2, а координатором – сервер С1. В этом случае полный объем переданных данных состоит из двух слагаемых: ОПДТ11 и ДТ, т.к. результаты транзакции должны быть переданы серверу С2. Таким образом, ОПДТ21=ОПДТ11+ДТ.

Теперь, зафиксировав источник транзакции, сравним полные объемы переданных данных при разных выборах координатора транзакции. Это позволяет сформулировать правило оптимального выбора координатора транзакции для данного примера.

Если источником транзакции является сервер С1, то при выполнении неравенства ОПДТ11 < ОПДТ12 координатором транзакции следует назначить сервер С1, в противном случае – сервер С2.

Если источником транзакции является сервер С2, то при выполнении неравенства ОПДТ21 < ОПДТ22 координатором транзакции следует назначить сервер С1, в противном случае – сервер С2.

Для программирования описанного алгоритма в общем случае требуется ввести следующие переменные и массивы:

 

КолСерв – число серверов;

КолТаб – число таблиц;

КолЗапр – число запросов;

ТранзОбъемОтвета - объем итогового результата выполнения транзакции;

ЗапрТаб(1:КолЗапр, 1:(КолТаб+1)), элемент (i, j) которого равен объему данных, извлекаемых i-м запросом из j-й таблицы при i <= КолТаб и равен объему итогового ответа на распределенный запрос при i = КолТаб+1;

ТабСерв(1:КолТаб, 1:КолСерв), элемент (i, j) которого равен 1, если i-я таблица размещена на j-м сервере, и равен нулю в противном случае.

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

 

 

Порядок выполнения работы

 

3.1. Для выбранного варианта задания составить множество пар (источник транзакции, координатор транзакции) и вычислить для них значения ОПДТ. При расчете использовать результаты оптимизации ОПДТ для распределенного запроса, полученные в практической работе № 3.

3.2. Составить таблицу соответствия между сервером-источником и сервером-координатором транзакции, выбранным по критерию минимизации ОПДТ.

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

3.4. Протестировать разработанную программу на примерах, выполненных вручную.

 

 

Содержание отчета

 

4.1 Титульный лист

4.2 Цель работы

4.3 Вариант задания

4.4 Перечень пар (источник транзакции, координатор транзакции).

4.5 Формулы для расчета ОПДТ

4.6 Результаты расчета ОПДТ

4.7 Таблица соответствия между сервером-источником и сервером-координатором транзакции

4.8 Текст разработанной программы

4.9 Результаты тестирования программы

4.10 Список использованной литературы

 

 

Вопросы для самопроверки

5.1. Как определяется распределенная транзакция в распределенной базе данных?

5.2. Какие действия выполняет Координатор распределенной транзакции?

5.3. Что должно быть задано в задаче оптимального выбора Координатора распределенной транзакции?

5.4. Что является критерием оптимизации в задаче оптимального выбора Координатора распределенной транзакции?

5.5. Как определяется общий объем передаваемых данных между серверами при выполнении распределенной транзакции?

 

 

Лабораторная работа № 4







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.