Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLV Международной научно-практической конференции «Инновации в науке» (Россия, г. Новосибирск, 27 мая 2015 г.)

Наука: Технические науки

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Цвященко Е.В. ИНСТРУМЕНТАЛЬНОЕ СРЕДСТВО АНАЛИЗА ПОКАЗАТЕЛЕЙ СОГЛАСОВАННОСТИ В БАЗАХ ДАННЫХ NOSQL // Инновации в науке: сб. ст. по матер. XLV междунар. науч.-практ. конф. № 5(42). – Новосибирск: СибАК, 2015.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

 

ИНСТРУМЕНТАЛЬНОЕ  СРЕДСТВО  АНАЛИЗА  ПОКАЗАТЕЛЕЙ  СОГЛАСОВАННОСТИ  В  БАЗАХ  ДАННЫХ  NOSQL

Цвященко  Евгений  Васильевич

аспирант,  Московский  государственный  технический  университет  им.  Н.Э.  Баумана,  РФ,  г.  Москва

E -maileugene.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).

Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.