Инструменты пользователя

Инструменты сайта


examination:rsubd:question10

Вопрос №10. Двенадцать основных принципов. Обработка распределенных запросов


Обработка распределенных запросов

Существует две особенности, касающиеся обработки распределенных запросов, которые необходимо предварительно прокомментировать.

Во-первых, рассмотрим запрос: «Получить сведения о лондонских поставщиках деталей красного цвета». Предположим, что пользователь работает на узле в Нью-Йорке, а данные размещены на узле в Лондоне. Предположим также, что имеется N поставщиков, которые удовлетворяют данному запросу. Если система реляционная, то для выполнения этого запроса, по существу, потребуется пересылка двух сообщений: одно – с запросом из Нью-Йорка в Лондон, а другое – с возвращаемым результатом, т.е. набором из N кортежей, пересылаемых из Лондона в Нью-Йорк. Если, с другой стороны, система – не реляционная и использует операции с таблицами на уровне отдельных записей, выполнение запроса будет, по существу, включать пересылку 2N сообщений – N сообщений из Нью-Йорка в Лондон, которые запрашивают данные следующего поставщика, и N сообщений из Лондона в Нью-Йорк, которые возвращают информацию об очередном поставщике. Этот пример показывает, что по производительности распределенная реляционная система может на несколько порядков превосходить нереляционную.

Во-вторых, оптимизация в распределенных системах даже более важна, чем в централизованных. Суть в том, что для запроса, подобного рассмотренному выше, может потребоваться обращение к нескольким узлам. В такой системе может быть много возможных способов пересылки данных, позволяющих выполнить рассматриваемый запрос. Поэтому крайне важно, чтобы была найдена эффективная стратегия. Например, запрос для объединения, скажем, отношения Rx, хранимого на узле X, и отношения Ry, хранимого на узле Y, может быть выполнен посредством пересылки отношения Rx на узел Y или отношения Ry на узел X, или обоих отношений на какой-либо узел Z и т.п. Подводя краткий итог этого примера, можно отметить, что для обработки данного запроса анализируется шесть различных стратегий с учетом определенного набора вероятных допущений. Время ответа в каждом случае различно и изменяется в широких пределах от минимального (от одной десятой секунды) до максимального (около шести часов). Таким образом, оптимизация, несомненно, весьма важна для распределенной системы и, кроме того, эту особенность можно считать еще одной причиной, по которой распределенные системы всегда должны быть реляционными (реляционные системы позволяют оптимизировать обработку запросов, а нереляционные– нет).

examination/rsubd/question10.txt · Последние изменения: 2014/01/15 12:21 (внешнее изменение)