Параллельное программирование

Сетевые базы данных с циркулирующими запросами-предложениями


Рассматриваемым ниже базам данных соответствует архитектура ЛВС с сервером типа "звезда" (рис. 2.5).


Рис. 2.5.  База данных с циркуляцией запросов-предложений

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

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

Если пользователь сформировал запрос к БД со своей РС, то запрос (а по нему определяется необходимый сегмент БД) ожидает прихода запроса-предложения сервера относительно нужного сегмента. Тогда сервер направляет сегмент (точнее, его копию) на РС и этот сегмент переходит в список занятых.

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

Таким образом, время выполнения каждого запроса к БД зависит от состояния сегмента (свободен — занят), от среднего времени обработки сегмента используемой СУБД, от времени одного цикла циркуляции запросов-предложений, от организации и подготовки обмена информацией (маршрутизации) в сети и т.д.

Отметим важность средств обеспечения надежности, защиты данных, отображения и др.

Рассчитаем среднее время обслуживания запроса при рассматриваемой организации его обработки.


Пусть, как и прежде, m — количество сегментов БД, n — количество РС в ЛВС. Для поиска вероятности того, свободен ли требуемый сегмент или взят на обработку (занят), необходимо определить в стационарном режиме среднее число занятых сегментов БД.

Считая поток запросов простейшим, построим цепь Маркова (рис. 2.6), соответствующую многоканальной системе массового обслуживания с количеством n каналов [17].


Рис. 2.6.  Цепь Маркова для нахождения предельных вероятностей состояния сегментов БД

Состояние S0 соответствует отсутствию занятых сегментов, поток запросов при этом реализуется полностью, т.е. ?0 = n ?польз. На обратный переход в это состояние влияет поток обслуживания с интенсивностью ?, формируемый копией СУБД единственной РС. Состояние S1 соответствует наличию одного занятого сегмента. Так как одна РС оказывается занятой обработкой сегмента, то поток запросов к БД реализуется n - 1 свободными. Кроме того, из этого потока исключаются запросы к занятому сегменту. Тогда
. Поток обслуживания, приводящий в это состояние из состояния S2, характеризующегося двумя занятыми сегментами, определяется двумя копиями СУБД. Интенсивность этого потока обслуживания равна 2? и т.д.

Таким образом, для состояния Si, i = 0 , ..., n, когда занято i сегментов,


(2.11)
а интенсивность потока обслуживания (для i < n), приводящего в это состояние, равна (i + 1)?.

Уравнения Колмогорова имеют вид


(2.12)
Решая [17] эту систему, находим:


(2.13)
Определим среднее число q занятых сегментов:


(2.14)
Тогда вероятность обращения к занятому сегменту


(2.15)
Пусть tпредл — цикл времени предъявления очередной заявки-предложения рабочей станции. Тогда среднее время ожидания свободного сегмента вычисляется следующим образом:

tожид своб. = 0,5 (m - q) tпредл. (2.16)

Если сегмент, к которому произведен запрос, занят, то время tожид. зан. его ожидания зависит от времени окончания его обработки, от времени tвозвр возврата серверу, от времени tосвоб включения в число свободных и от времени его ожидания как свободного сегмента:

tожид.зан. = 0,5 tобсл. + tвозвр. + tосвоб. + tожид своб. (2.17)

Тогда полное время обслуживания запроса с РС вычисляется:

Tобсл = Pзанят tожид.зан + (1 - Pзанят)tожид своб + tобсл. (2.18)

Полученная оценка, аналогично (2.5) и (2.10), является основой критерия эффективности данного способа организации сетевой БД.


Содержание раздела