Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





 

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

 

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

 

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

Рассмотрим последовательно работу протокола на разных этапах выполнения распределенной транзакции.

1). Сервер – координатор транзакции (координатор) рассылает частные задания серверам – исполнителям (исполнителям), но часть из них вследствие нарушения связи эти сообщения не получили. Поэтому даже после восстановления связи они не пошлют серверу – координатору свои сообщения и транзакция фактически «повиснет» в самом начале. Для устранения этого нежелательного события сервер – координатор ограничивает время ожидания ответов от серверов – исполнителей величиной ТС. При этом, если через время ТС поступили ответы не от всех исполнителей, координатор посылает исполнителям команду отката транзакции, после чего транзакция считается завершенной. Ясно, что в этом случае ни один из исполнителей не зафиксирует результаты своей локальной транзакции, т.к. команду фиксации результатов транзакции координатор не передавал.

2). Сервер – исполнитель получил частное задание от координатора и послал ему сообщение о готовности или неготовности выполнить локальную транзакцию; но это сообщение из-за нарушения связи не получено координатором. В этом случае через время ТС координатор посылает команду об откате транзакции, после чего транзакция считается завершенной. Ясно, что и в этом случае ни один из исполнителей не зафиксирует результаты своей локальной транзакции, т.к. команду фиксации результатов транзакции координатор не передавал.

3). Сервер – координатор посылает исполнителям команду либо зафиксировать, либо откатить транзакцию, но эта команда из-за нарушения связи какими-то исполнителями не получена. В этом случае исполнитель, пославший сообщение об отказе выполнять локальную транзакцию, ничего не теряет, т.к. команда зафиксировать транзакцию к нему поступить не может, а локальную транзакцию он уже завершил откатом. Если же исполнитель послал сообщение о готовности выполнить локальную транзакцию, то он не может завершить свою транзакцию, пока не получит от координатора определенный ответ: фиксировать результаты транзакции или выполнить ее откат. С этой целью он должен дождаться восстановления связи с координатором и запросить повторения посланной ему команды.

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

Для программы моделирования распределенной транзакции должны быть определены следующие входные данные.

КолИсп – число серверов – исполнителей распределенной транзакции;

F1i(x) (i = 1: КолИсп) – интегральная функция распределения вероятностей (ИФРВ) для случайной величины задержки при получении i - м исполнителем частного задания от координатора;

F2i(x) (i = 1: КолИсп) –ИФРВ для случайной величины времени выполнения локальной транзакции без фиксации ее результатов;

F3i(x) (i = 1: КолИсп) –ИФРВ для случайной величины задержки при передаче сообщения от i - го исполнителя координатору;

F4i(x) (i = 1: КолИсп) –ИФРВ для случайной величины задержки при передаче команды i - му исполнителю о фиксации или откате транзакции;

ТС – допустимое время ожидания координатором сообщений от исполнителей.

Для упрощения модели считается, что F1i(x) = F4i(x) и задержки обусловлены только очередями на входах линий связи, т.е. переданное сообщение обязательно поступает к получателю. При этом отпадает необходимость в переспросах.

В процессе моделирования формируются оценки для следующих величин:

Тi (i=1: КолИсп) - среднее время выполнения локальной транзакции i-м исполнителем,

ТРТ – среднее время выполнения распределенной транзакции.

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

 

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

 

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

3.2. Для выбранного варианта задания составить и отладить программу моделирования процесса выполнения распределенной транзакции во времени.

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

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

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

3.6. Сравнить результаты, полученные в пп. 3.1, 3.4, 3.5, и сделать выводы.

 

 

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

 

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

4.2 Цель работы

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

4.4 Расчет оценки времени выполнения транзакции по условиям п.3.1.

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

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

4.7 Оценки среднего времени выполнения транзакций по условиям п.3.4.

4.8 Оценки среднего времени выполнения транзакций по условиям п.3.5.

4.9 Сравнение полученных результатов и выводы.

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

 

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

5.1. Почему качество связи между серверами в распределенной базе данных влияет на производительность выполнения транзакций?

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

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

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

 

 

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







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

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





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


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