Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1216 / 120 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист
Лекция 2:

Применение SPMD-технологии при построении сетевых баз данных с циркулирующей информацией

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Состояние S0 соответствует отсутствию занятых сегментов, поток запросов при этом реализуется полностью, т.е. \lambda _{0} = n \lambda _{польз}. На обратный переход в это состояние влияет поток обслуживания с интенсивностью \mu, формируемый копией СУБД единственной РС. Состояние S1 соответствует наличию одного занятого сегмента. Так как одна РС оказывается занятой обработкой сегмента, то поток запросов к БД реализуется n - 1 свободными. Кроме того, из этого потока исключаются запросы к занятому сегменту. Тогда \lambda_1 = (1 - \frac{1}{m})(n - 1) \lambda_{\text{польз}}. Поток обслуживания, приводящий в это состояние из состояния S2, характеризующегося двумя занятыми сегментами, определяется двумя копиями СУБД. Интенсивность этого потока обслуживания равна 2\mu и т.д.

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

\begin{align*}
\lambda_i = (1 - \frac{i}{m})(n - i) \lambda_{польз} \notag
\end{align*} ( 2.11)
а интенсивность потока обслуживания (для i < n ), приводящего в это состояние, равна (i + 1)\mu.

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

\begin{align*}
 \left\{
  \begin{array}{l}
   \lambda_0\, P_0 = \mu P_1 \\
   \lambda_1\, P_1 = 2 \mu P_2 \\
   \lambda_2\, P_2 = 3 \mu P_3 \\
   \ldots \ldots \ldots \ldots\\
   \lambda_{n-1}\, P_{n-1} = n \mu P_n \\
   P_0 + P_1 + \ldots + P_n = 1.
  \end{array}
 \right. \notag
\end{align*} ( 2.12)

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

\begin{align*}
P_0 = (1 + \frac{\lambda_0}{1!\mu}+\frac{\lambda_1\lambda_0}{2!\mu^2}+
\frac{\lambda_2\lambda_1\lambda_0}{3!\mu^3}+ \ldots +
\frac{\lambda_{n-1}\lambda_{n-2} \ldots \lambda_0}{n!\mu^n})^{-1};\notag \\
P_1 = \frac{\lambda_0}{1!\mu}P_0; \, P_2 =
\frac{\lambda_1\lambda_0}{2!\mu^2}P_0; \, \ldots ;\, P_n =
\frac{\lambda_{n-1}\lambda_{n-2}
\ldots \lambda_0}{n!\mu^n} P_0. \notag
\end{align*} ( 2.13)

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

\begin{align*}
q = \sum_i i P_i. \notag
\end{align*} ( 2.14)

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

\begin{align*}
P_{\text{занят}} = \frac{q}{m}. \notag
\end{align*} ( 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), является основой критерия эффективности данного способа организации сетевой БД.

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >