Проблемы распределённых систем
Ограниченная скорость сети, на которой развёрнута распределённая система, поэтому нужно стараться сводить взаимодействие по сети к минимуму.
* Обработка запросов * Обработка каталогов * Распределение обновлений * Управление параллелизмом * Управление восстановлением
Обработка запросов Для минимального использования сети: оптимизация запросов. Состоит из двух этапов: глобальная оптимизация, несколько локальных оптимизаций. На примере БД поставщиков поставщик: S {S#, город} 10 тысяч – узел A детали: P {P#, цвет} 100 тысяч – узел B поставки: SP {S#, P#} 1 млн – узел A
Пусть каждый хранимый кортеж имеет размер 25 байт.
Запрос: получить сведения о находящихся в Москве поставщиках красных деталей. Число красных деталей – 10 тысяч, поставок из Москвы – 100 тысяч.
Параметры обмена данными в сети: скорость 50 Кбит/с, задержка доступа 0,1 секунды.
Исходя из этих данных, вычислим общее время передачи информации: общее время = общая задержка + (общий объём данных / интенсивность передачи информации) = (число сообщений / 10) + (число бит / 50000).
6 стратегий выполнения запроса 1. Переместить отношение P на узел A = 0,1 + 100000*200/50000 = 400 сек ~ 7 минут.
2. Переместить S и SP на узел B и там выполнить запрос = 0,2 + 10000*200/50000 + 1000000*200/50000 = 4000 сек ~ 1 час
3. Соединить отношения S и SP на узле A, выбрать из результата кортежи для поставщиков из Москвы, а затем, на узле B проверить для каждой, не является ли деталь красной. Такая проверка содержит 2 сообщения – запрос и ответ. Время ~ 20000 сек = 5,5 часов.
4. Выбрать из P кортежи, соответствующие красным деталям, а затем, для каждой из них проверить, не является ли поставка поставкой из Москвы. И здесь 2 сообщения (запрос, ответ). Время = 2 сек????
5. Соединить отношения S и SP на узле A, выбрать из полученного результата кортежи поставщиков из Москвы. Результат разбить на проекции по атрибутам S# и P# и переместить на узел B, где и завершить выполнение запроса. Время = 400 сек ~ 7 минут.
6. Выбрать из отношения P на узле B кортежи, соответствующие красным деталям, а затем переместить их на узел A. Завершить выполнение запроса на узле A. Время = 0,1 + 10*2000/50000 ~ 0,5 сек
Замечание: Некоторые стратегии позволяют выполнить параллельную обработку на нескольких узлах, таким образом время отклика может оказаться меньше времени отклика в централизованной системе.
Дата добавления: 2015-09-18 | Просмотры: 419 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|