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

Статья опубликована в рамках: LII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 27 апреля 2017 г.)

Наука: Информационные технологии

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

Библиографическое описание:
Гимранов Р.Р. ФОРМАЛИЗАЦИЯ СПОСОБОВ ПРОЕКТИРОВАНИЯ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LII междунар. студ. науч.-практ. конф. № 4(51). URL: https://sibac.info/archive/technic/4(51).pdf (дата обращения: 30.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

ФОРМАЛИЗАЦИЯ СПОСОБОВ ПРОЕКТИРОВАНИЯ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ

Гимранов Ринат Раисович

магистрант, кафедра И9 БГТУ «ВОЕНМЕХ» им Д. Ф. Устинова

РФ, г. Санкт-Петербург

Стремительным темпом роста стека информационных технологий и глобальной информатизации за последние десятилетия, неизбежного увеличения объема информации и как следствие рост количества пользователей, приводит к решению задач обработки и хранения, большего объема данных. Связано это с тем, что ежедневно организационными единицами крупных предприятий генерируются миллионы запросов с трафиком в гигабайты данных, которые отправляют к серверам относящихся к их деятельности. Ученые обрабатывают сотни терабайт информации в рамках своих научных исследованиях. Пользователи взаимодействуют с контентом социальных сетей, используя службы мгновенных сообщений (Instant Messaging Service) [4] порождая сотни миллионов коротких сообщений, тем самым генерируют огромный трафик, который необходимо хранить и обрабатывать. Для решения такого рода задач необходимо формализовать способы построения систем распределенных баз данных.

Прежде чем приступать к способам проектирование распределенных баз данных, необходимо определить основные понятия, используемые в данной статье.

Распределенные базы данных (distributed databases, в дальнейшем РаспБД) представляет собой совокупность из набора узлов, которые связанны между собой коммуникационной сетью, задачей которой является передача данных без ошибок и искажений [1, c 822].

Правила и цели которыми должны обладать РаспБД описаны профессором Кристофером Дейтом [1, с. 812]. Чтобы построить систему РаспБД, которая удовлетворяет нашим задачам, принимая во внимание трудности организации распределенных систем, воспользуемся следующими способами:

1. Способ фрагментации - это один из основных способов организации систем РаспБД. Принцип построения заключается в следующем, разбитие и расчленение РаспБД на фрагменты (fragments) или куски при организации ее физического хранения, и принятия решения о том, в каких узлах системы  эти фрагменты могут храниться [5, с. 78]. Сам процесс размещения представляет собой принятие решения о месте хранения данных с целью минимизации целевой функции, при выполнение запроса.

Выделяют два основных вида фрагментации: горизонтальную - в которой распределение и хранение строк одной таблицы осуществляется на различных узлах. Вертикальную - распределение столбцов одной таблицы осуществляется по разным узлам.

Данный способ применяется в классах задач для повышения производительности системы. Например, в корпоративных информационных системах, где организационные единицы (филиалы, заводы и т.д.) были уже распределены хотя бы логически или физически. При таком способе данные хранятся  непосредственно в том месте, где чаще всего востребованы, вследствие чего имеем уменьшение сетевого трафика и локализацию большинства операций. Другой класс задач относиться к построению корпоративных внутренних поисковых информационных систем, на базе технологии Interne\Intranet. Достигается путем сужение пространства поиска при исполнение запроса.

2. Способ репликации - принцип действия заключается в поддержание нескольких реплик или копий данных, которые хранятся в различных узлах сети [3]. Репликация крайне полезна, она позволяет достичь более высокую производительность, из за возможности обработки локальной копии приложениями, вместо того чтобы устанавливать связь с различными узлами. Также с ее помощью можно обеспечить более высокую степень доступности данных, до тех пор, пока хотя бы одна реплика остаётся доступной. Существуют различные способы организации репликации:

  • Репликация на базе основной копии  к ней относятся:

Классический подход - основан на наличии одной основной копии, в которую можно вносить изменения, остальные копии создаться только для чтения.

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

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

К способам распространения изменений можно отнести следующие: выгрузка (дамп) и повторная загрузка - при данном способе данные извлекаются из единственного источника и загружаются в один или более приемников. К недостаткам можно отнести время появления новых данных и их распространения, а также одностороннюю репликацию без своевременного удаления обновлений. Снимки (snapshot) - В определенные моменты делаются снимки РаспБД, которые затем загружаются в серверы-приемники. В качестве достоинства следует отметить простоту реализации. К недостаткам можно отнести, что не обеспечивается удаленного обновления и не подходят для систем реального времени [2, с. 652].

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

 Существует два основных механизма распространения изменений при симметричной репликации: синхронный - это когда в рамках одной транзакции вносятся изменения во все копии и асинхронный - он подразумевает отложенный характер изменений в удаленные копии.

К способам распространения изменений можно отнести следующие: использование триггеров - внутрь помещаются команды, которые проводят на других копиях обновления, аналогичные тем, которые вызвали выполнение триггера. Достаточно гибкий подход, но обладает рядом недостатков: создание дополнительной нагрузки на систему, не могут выполнятся по графику, трудно реализовывать групповое обновление таблиц. Поддержка журналов изменений для реплицируемых данных - эта рассылка этих изменений входит в задачу сервера СУБД или сервера тиражирования данных. Основные принципы: для сохранения согласованности данных должен соблюдаться порядок внесения изменений, а также информация должна сохранятся в журналах, до тех пор, пока не будут обновлены все копии этих данных.

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

3. Способ распределенных запросов - это использование запросов, которые обращаются к двум и более узлам РаспБД, но не обновляют в них данные. Принцип работы заключается в том, что запрашивающий узел должен определить, что в запрос пойдет обращение к данным, которые располагаются на другом узле, затем выделить подзапрос к удаленному узлу и перенаправить его к этому узлу [1, с. 820]. К недостаткам можно отнести проблему  оптимизации выполнения распределенных запросов, т.е. поиск оптимального плана выполнения запроса. Поэтому обычно распределенный запрос выполняется следующим образом: запрашиваемый узел собирает все данные, полученные в результате выполнения подзапросов, у себя, затем выполняет их соединение (или объединение).

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

4. Способ распределенных транзакций - это когда распределенные транзакции обращаются к двум и более узлам и обновляют на них данные. Принцип действия заключается в выполнение распределённой транзакции с помощь специального алгоритма, который имеет название двухфазной фиксации [1, с. 843].

Основная проблема заключается в соблюдение логической целостности данных. Транзакция на всех узлах должна завершиться одинаково: или фиксацией или откатом.

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

 

Список литературы:

  1. Дейт К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом "Вильяме" 2005. — 1328 с.
  2. Крёнке Д. Теория и практика построения баз данных. 8-е изд. — СПб.: Питер, 2003 - 800 с.
  3. Оззу М. Тамер, Валдуриз Патрик. Распределенные и параллельные системы баз данных. [Электронный ресурс] — Режим доступа. — URL: http://citforum.ru/database/classics/distr_and_paral_sdb/ (дата обращения 07.03.2017)
  4. Система мгновенного обмена сообщениями. [Электронный ресурс]. — Режим доступа. — URL: https://ru.wikipedia.org/wiki/Система_мгновенного обмена_сообщениями/ (дата обращения 12.12.2016)
  5. Таненбаум Э., Стеен M. Ван Распределенные системы. Принципы и парадигмы  –  СПб.:Питер, 2003 – 877с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

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

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