Статья опубликована в рамках: XLV Международной научно-практической конференции «Инновации в науке» (Россия, г. Новосибирск, 27 мая 2015 г.)
Наука: Технические науки
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
Статья опубликована в рамках:
Выходные данные сборника:
ИНСТРУМЕНТАЛЬНОЕ СРЕДСТВО АНАЛИЗА ПОКАЗАТЕЛЕЙ СОГЛАСОВАННОСТИ В БАЗАХ ДАННЫХ NOSQL
Цвященко Евгений Васильевич
аспирант, Московский государственный технический университет им. Н.Э. Баумана, РФ, г. Москва
E -mail: eugene.tsviashchenko@gmail.com
ANALISYS TOOL FOR CONSISTENCY PARAMETERS IN NOSQL
DATABASES
Tsviashchenko Evgeny
postgraduate student Bauman Moscow state technical university, Russia, Moscow
АННОТАЦИЯ
В статье представлены основные аспекты разработки инструментального средства анализа показателей согласованности в базах данных NoSQL. Программное обеспечение позволяет получать результаты аналитических расчётов и имитационного моделирования согласно моделям согласования реплик и модели согласования версий записи. Описывается многоязыковая структура инструментального средства при работе пользователя с моделью версий записи и связи между модулями приложения.
ABSTRACT
In this work the main aspects of analysis tool for consistency parameters in NoSQL databases were presented. This software allows to obtain the result of analytical calculations and simulation modeling according to models of replicas agreement and record versions agreement. The multilanguage structure of tool while user is working with model of record versions and relations between application modules were described.
Ключевые слова: база данных NoSQL; согласованность в конечном счете; строгая согласованность; версии записи; инструментальное средство.
Keywords: NoSQL database; eventually consistency; strong consistency; record versions; tool.
Базы данных NoSQL (Not-Only-SQL) [8] обладают рядом преимуществ по сравнению с параллельными системами баз данных SQL [2]. К ним можно отнести высокую масштабируемость и отказоустойчивость, возможность обработки неструктурированных данных, большое число реплик и др. Но, в них не поддерживается режим ведения транзакций, поэтому возникает проблема согласования данных. Поддержание требуемого уровня согласованности для каждой конкретной предметной области может регулироваться параметрами (N, W, R) [3], позволяя в явном виде указывать тип согласованности: согласованность в конечном счете или строгая согласованность.
Различают слабую (W+R≤N) и строгую (W+R>N) согласованность. В работе [2] разработана аналитическая модель согласования реплик в конечном счете в базах данных NoSQL. Модель позволяет оценить вероятность того, что в процессе обновления реплик поступит хотя бы одно требование на чтение из необновленных реплик. В работе [3] разработана аналитическая модель строгого согласования реплик, позволяющая оценить время ожидание требованием на чтение окончания обновления W реплик.
Клиенты системы NoSQL могут одновременно обновлять одну и туже запись, что может привести к конфликту обновления. Один из способов разрешения конфликтов — использование версий записи. В работе [4] разработана имитационная модель согласования версий записи в базах данных NoSQL. Модель позволяет оценить число версий записи (пары «ключ/значение»), одновременно хранящихся в базе данных и время их обработки.
Разработанные модели могут быть использованы на стадии проектирования информационных систем, использующих базу данных NoSQL для хранения и обработки данных. Однако, аналитические расчеты достаточно сложны и требуют от проектировщика системы определенных знаний в области теории вероятностей, теории массового обслуживания, имитационного моделирования.
Для доказательства адекватности разработанных моделей был реализован натурный эксперимент в облачном кластере размером до 25 узлов, предоставленных компанией DigitalOcean (DO) [6]. В качестве базы данных NoSQL использовалась система Riak [9], которая была установлена на каждом узле в среде операционной системы (ОС) Ubuntu Server 14.04 [10]. Анализ адекватности модели согласования реплик в конечном счете показал, что средняя относительная погрешность моделирования вероятности рассогласования реплик составила 9,4 %. Сильное расхождение модели с экспериментом наблюдается только при N=24, но подобное значение N редко встречается в реальных системах. Для случая строгой согласованности средняя ошибка по двум сериям экспериментов составила 7,4 %. Анализ адекватности модели согласования версий записи, описанный в работе [6] показал, что средняя относительная погрешность оценки среднего числа версий записи составила 7,5 %, дисперсии — 5,5 %. Для времени обработки версий записи эти погрешности составили соответственно 0,22 % и 20,6 %. Таким образом, можно считать, что разработанные модели согласования реплик и согласования версий записи в базах данных NoSQL являются достаточно адекватными.
Основной модуль инструментального средства реализован на языке C# (минимальная версия .Net Framework — 4.0). Приложение функционирует под управлением ОС Windows. Выбор версии .Net обусловлен необходимостью строить графики по вычисленным значениям. В области основного окна располагаются вкладки «Согласованность в конечном счете / строгая согласованность», «Версии записи». Первая вкладка позволяет пользователю работать с моделями согласованности в конечном счете и строгой согласованности. Объединение расчётов по двум моделям в одной вкладке обусловлено тем, что исходные данные этих моделей настраиваются одинаково. Программное обеспечение позволяет рассчитывать вероятность того, что в процессе обновления реплик поступит хотя бы одно требование на чтение из необновленных (для слабой согласованности), время ожидания требованием на чтение окончания обновления W реплик и время чтения R реплик с учётом ожидания (для строгой согласованности).
Для каждой конкретной предметной области существует допустимая вероятность доступа к рассогласованным данным, а также максимально допустимое время ожидания (задержка чтения). Поэтому в приложении доступен расчет величин при изменяющихся входных данных; такая организация входных данных позволит пользователю проследить динамику изменения результатов, например, можно оценить максимальную задержку чтения для строгой согласованности в пик нагрузки (при максимальном λ).
В аналитических расчетах модели строгой согласованности фигурирует выражение для второго начального момента времени обновления W реплик. Для расчёта второй производной используются методы численного дифференцирования, описанные в [1]. Однако точности встроенных типов данных языка C# не хватает для таких расчетов. Например, тип double позволяет оперировать значениями только до 10-15. Для решения этой проблемы была использована библиотека mpreal [11] которая позволяет настраивать точность вычислений (до 500 знаков), но эта библиотека доступа только в среде C++. Для её использования в среде C# была разработана библиотека StrongDouble.dll (она входит в состав инструментального средства) — это CLR библиотека, реализующая доступ к необходимым функциям mpreal: настройка точности вычислений, простые арифметические операции, возведение в степень. Точность вычислений методами численного дифференцирования напрямую зависит от шага таблицы разностей h (см. [1, с. 62]). В программных расчетах заложено значение h=10-10 при точности вычислений в 200 знаков.
На второй вкладке программы доступна работа с моделью согласования версий записи в базах данных NoSQL. При помощи инструментального средства можно получить оценки следующих величин: среднее значение числа версий записи (пары «ключ/значение»), одновременно хранящихся в БД; правая граница доверительного интервала числа версий; среднее значение времени обработки версий клиентом; правая граница доверительного интервала времени обработки.
Как и для моделей согласования реплик, для модели согласования версий записи можно задавать сразу несколько значений входных параметров для одного процесса моделирования: число клиентов и коэффициент k, учитывающий время обдумывания пользователем результатов обработки (через точку с запятой).
Окно программы (вторая вкладка) содержит элементы управления только для настройки имитационной модели: вариант модели (1 или 2), число клиентов, коэффициент k, время моделирования (на один прогон), дискретную функцию распределения времени обработки клиентом одной версии записи. Само моделирование выполняется в среде GPSS [12]. Для автоматической замены исходных данных моделирования разработана программа на языке PLUS [13]. Текст программы на PLUS и модели GPSS генерируется автоматически после настройки входных данных пользователем. На рис. 1 представлена структура работа инструментального средства с моделью версий записи.
Рисунок 1: Структура работы инструментального средства с моделью версий записи
Язык PLUS предоставляет возможность вызова функций «C» из кода программы на GPSS через функцию CALL. Для отображения процесса и результатов моделирования (блок «библиотека отображения результатов» на рис. 1) была разработана библиотека на языке C++ (MFC фрэймворк) VersionsLib.dll (входит в состав инструментального средства). Из PLUS осуществляется вызов следующих функций: SetResultFileName — вызывается до начала моделирования для установки инициализации имени файла с результатами моделирования; SetTotalProgress — устанавливает общее число прогонов (см. стрелку «начать моделирование» на рис. 1); SetProgress — устанавливает прогресс согласно номеру текущего прогона (см. стрелку «отобразить текущий прогон» на рис. 1); SetFinish — сообщает системе, что моделирование завершено и необходимо отобразить результаты моделирования (см. стрелку «закончить моделирование» на рис. 1).
Список литературы:
1.Бахвалов Н.С. Численные методы (анализ, алгебра, обыкновенные дифференциальные уравнения). М.: Наука, 1973. — 631 с.
2.Григорьев Ю.А. Цвященко Е.В. Анализ характеристик согласования реплик в конечном счете в базах данных NoSQL // Информатика и системы управления. — 2014. — № 3. — С. 3—11.
3.Григорьев Ю.А. Цвященко Е.В. Сильная и слабая согласованность в базах данных NoSQL // Информатика и системы управления. — 2014. — № 4. — С. 14—23.
4.Григорьев Ю.А. Цвященко Е.В. Анализ процессов обработки версий записи в базах данных NoSQL // Наука и образование. — 2015. — № 1. — С. 176—188.
5.Редмон Э., Уилсон Д.Р. Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL. М.: ДМК Пресс, 2013. — 384 с.
6.Цвященко Е.В. Анализ адекватности модели согласования версий записи в базах даных NoSQL // Наука и образование. — 2015. — № 3. — С. 193—206.
7.Digital Ocean. [Электронный ресурс] — Режим доступа. — URL: https://www.digitalocean.com. (дата обращения 20.05.2015).
8.NoSQL. [Электронный ресурс] — Режим доступа. — URL: http://ru.wikipedia.org/wiki/NoSQL (дата обращения 20.05.2015).
9.Riak documentation. [Электронный ресурс] — Режим доступа. — URL: http://docs.basho.com/index.html (дата обращения 20.05.2015).
10.Ubuntu OS 14.04. [Электронный ресурс] — Режим доступа. — URL: http://releases.ubuntu.com/14.04 (дата обращения 20.05.2015).
11.MPFR C++. [Электронный ресурс] — Режим доступа. — URL: http://www.holoborodko.com/pavel/mpfr/ (дата обращения 20.05.2015).
12.GPSS World Reference Manual. [Электронный ресурс] — Режим доступа. — URL: http://www.minutemansoftware.com/reference/reference_manual.htm (дата обращения 20.05.2015).
13.PLUS GPSS. [Электронный ресурс] — Режим доступа. — URL: http://www.minutemansoftware.com/reference/r8.htm (дата обращения 20.05.2015).
дипломов
Оставить комментарий