116
Рисунок 4.2 – Область основного окна ИС АПСОР.
Программное обеспечение позволяет рассчитывать вероятность того, что
клиент прочитает устаревшую запись за время
распространения обновлений
записи по ее N-W репликам - для согласованности в конечном счете (формулы
(2.8), (2.11)), время ожидания требованием на чтение окончания обновления W
реплик и время чтения R реплик с учетом ожидания - для строгой
согласованности (формулы (2.21) и (2.22) соответственно). Для каждого типа
(сегмента) записей базы данных NoSQL, разработанной для предметной области,
существует допустимая вероятность доступа к рассогласованным данным, а также
максимально допустимое время ожидания (задержки чтения). В
приложении
доступен расчет указанных показателей для изменяющихся входных данных:
число реплик N (несколько значений через ;) и диапазон изменения
117
интенсивности требований на чтение из одной реплики (λ). Такая организация
входных данных позволяет проектировщику проследить
динамику изменения
показателей при изменении λ для каждого N.
В реальных системах сеть передачи данных (как внутри сегмента сети, так и
между ними) может быть нагружена. Чтобы учесть снижение производительности
сети, необходимо указать значения загрузок соответствующих сетей (в интервале
[0, 1)). В случае ненулевой загрузки, интенсивность μ
*
передачи данных по сети
будет рассчитана по следующей формуле:
)
1
(
*
,
(4.1)
где μ, ρ – заданная интенсивность и загрузка сети.
Для расчета по формулам (2.21) и (2.22) необходимо вычислять φ
(2)
(0) –
второй начальный момент времени обновления W реплик. Для расчета второй
производной
в
ИС
АПСОР
используются
методы
численного
дифференцирования. Однако точности встроенных типов данных языка C# не
хватает для таких расчетов. Например, тип
double
позволяет выполнять расчеты с
точностью до 10
-15
. Для решения этой проблемы была
использована библиотека
mpreal
[67] – доработка библиотек
mpfr
[68] и
mpir
[69] для C++
.
Библиотека
mpreal
позволяет настраивать точность вычислений (до 500 знаков), но эта
библиотека доступа только в среде C++. Для ее использования в среде C# была
разработана библиотека
StrongDouble.dll
(входит в
состав инструментального
средства) – это CLR-библиотека [70], реализующая доступ к необходимым
функциям
mpreal
: настройка точности вычислений, простые арифметические
операции, возведение в степень.
CLR-библиотеки удобны тем, что являются
управляемыми и могут быть использованы в любом языке программирования,
поддерживающим
.Net.
Точность
вычислений
методами
численного
дифференцирования напрямую зависит от шага таблицы разностей h (см. [57, стр.
62]). В программных расчетах заложено значение h=10
-10
при точности
вычислений в 200 знаков.
На рисунке 4.2 представлен
пример вычисления вероятности, что клиент
прочитает устаревшую запись за время распространения обновлений записи по ее
118
N-W репликам. При больших значениях N и λ вероятность может достигать
больших значений.
Do'stlaringiz bilan baham: