Распространение обновления

Неприятности распределенных совокупностей

Ниже более детально описываются кое-какие уже упомянутые неприятности. Главная неприятность информационных сетей, по крайней мере глобальных, содержится в том, что они достаточно медленны. В обычной глобальной сети интенсивность обмена данными равна примерно 5 либо 10 тыс. байт в секунду, а для простого твёрдого диска интенсивность обмена данными — около 5 либо 10.млн байт в секунду. (Иначе, в локальных вычислительных сетях уже может поддерживаться скорость обмена данными, сравнимая с интенсивностью обмена на твёрдых дисках.) Благодаря этого главным требованием к распределенным совокупностям есть минимизация применения сети, т.е. сокращение до объёма и минимума количества пересылаемых в сети сообщений.

Рвение к достижению-этой цели приводит, со своей стороны, к необходимости ответа нижеперечисленных неприятностей:

• Обработка запросов.

• Управление каталогом.

• Распространение обновления.

• Управление восстановлением.

• Управление параллелизмом.

Обработка запросов

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

К примеру, допустим, что запрос Q задан на узле X и включает объединение отношения Rу, содержащего сто кортежей (строчка таблицы) на узле Y, и отношения Rz, содержащего миллион кортежей на узле Z . Оптимизатор на узле X выберет глобальную стратегию для исполнения запроса Q, наряду с этим, разумеется, лучше переместить отношение Ry на узел Z, а не отношение Rz на узел Y (и конечно же, не нужно перемещать оба отношения Ry и Rz на узел X. Тогда сразу после перемещения отношения Ry на узел Z стратегия исполнения объединения на узле Z будет выбрана локальным оптимизатором на узле Z.

Управление каталогом

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

1. Централизованный каталог. Целый каталог хранится в одном месте, т.е. на центральном узле.

2. Всецело реплицированный каталог. Целый каталог всецело хранится на каждом узле.

3. Секционированный каталог. На каждом узле содержится его личный каталог для объектов, хранимых на этом узле. Неспециализированный каталог есть объединением всех разъединенных локальных каталогов.

4. Комбинация первого и третьего вариантов. На каждом узле хранится личный локальный каталог (как в п. 3), помимо этого, на одном центральном узле хранится унифицированная копия всех этих локальных каталогов (как в п. 1).

Для каждого подхода свойственны проблемы и определённые недостатки. В первом подходе, разумеется, не достигается независимость от центрального узла. Во втором теряется автономность функционирования, потому, что при обновлении каждого каталога это обновление нужно будет распространить на любой узел. В третьем исполнение нелокальных операций делается очень дорогостоящим (для поиска удаленного объекта потребуется в среднем осуществить доступ к половине имеющихся узлов). Четвертый подход более действен, чем третий (для поиска удаленного объекта потребуется осуществить доступ лишь к одному удаленному каталогу), но в нем опять не достигается независимость от центрального узла.

Распространение обновления

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

Неспециализированная схема устранения данной неприятности (и не единственно вероятная в этом случае), именуемая схемой первичной копии, обрисована ниже.

• Одна копия каждого реплицируемого объекта именуется первичной копией, а все остальные — вторичными.

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

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

Hustle Castle #128293; Не так долго осталось ждать в игре (обновления) #128293;


Также читать:

Понравилась статья? Поделиться с друзьями: