Выбор стратегии распределения данных:


Источник : Колесников Д.Г. Оптимизация распределения информационных файлов в сетях ЭВМ с параллельной обработкой//Диссертация на соискание ученой степени кандидата технических наук.-
 

Ростов-на-Дону,1999. с.33-41

Одна из важнейших проблем создания локальных сетей - создание распределенной базы данных (РБД). Системы распределенных баз данных характеризуются тем, что в них между несколькими ЭВМ распределены информационные файлы и имеются соответствующие средства для управления распределенными данными.

Существует четыре альтернативные стратегии распределения данных [51, 62]:

1.Централизация (единственная копия базы данных, расположенная в одном узле).

2.Расчленение (единственная копия базы данных, непересекающиеся подмно-жества распределены по различным узлам).

3.Дублирование (несколько копий базы данных, в каждом узле располагается полная копия всех данных).

4.Смешанная (несколько копий подмножеств базы данных, в каждом узле может содержаться произвольный фрагмент базы данных).

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

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

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

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

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

Производительность является проблемой не потому, что современным процес-сорам не хватает требуемой мощности, а потому, что сегодняшние файл-серверы используют принцип "все или ничего" для исполнения запросов рабочих станций. Полные копии файлов базы данных постоянно перемещаются вперед-назад по сети. Проблемы с безопасностью и целостностью данных возникают из-за того, что файл-серверы изначально не были сконструированы с учетом целостности данных и их восстановления в случае аварии, неявного распараллеливания задач (implicit concurrency) и централизованного контроля управления данными, типичными функ-циями, выполняемыми СУБД на средних и больших ЭВМ.

Архитектура "клиент-сервер" (CSA - Client Server Architecture) заменила модель "файл-сервера" на более мощную, состоящую из "клиентов" и "серверов", что позволи-ло совместить достоинства однопользовательских (высокий уровень диалоговой поддержки, дружественный интерфейс и низкую цену) и более крупных компьютерных систем (поддержка целостности и защита данных, многозадачность).

В архитектуре "клиент-сервер" интерфейс пользователя, отображения и запросы хранятся отдельно от системы управления реальными данными и их фильтров. Внеш-ние прикладные программы сориентированы более на представление информации клиенту. Сервер же обрабатывает запросы прикладных программ, выбирает необходи-мые данные, посылает их клиентам по сети и производит обновление информации.

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

Распределенные стратегии должны доказать свои преимущества путем преодо-ления некоторых недостатков, присущих централизованным системам. Так как в централизованных базах данных все данные располагаются в единственном узле, то возможный размер базы данных ограничивается объемом памяти центральной ЭВМ. Все запросы на выборку и обновление данных должны направляться в центральный узел с соответствующими временными задержками. Если в центральном узле находит-ся однопроцессорная ЭВМ, то это приведет к ограничениям на параллельную обработ-ку, следовательно, время реакции системы может быть слишком большим для пользо-вателя. Центральный узел может стать узким местом всей системы, хотя вся остальная сеть может функционировать нормально. Любая из трех других стратегий распределе-ния данных преодолевает некоторые из этих недостатков, но ценой определенных затрат.

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

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