next up previous contents
Next: Как пересылаются данные и Up: DIPC - Распределенные межпроцессные Previous: Как компоненты dipcd ``общаются''   Contents

Арбитраж

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

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

Может быть только один арбитр в пределах кластера. Все машины в данном кластере должны знать, на каком из компьютеров в текущий момент выполняется арбитр, и обращаться к нему при необходимости. Фактически единственный арбитр помещает две или более машины в кластер. Другими словами, кластер создается машинами с одним арбитром. Адрес арбитра может быть задан системным администратором с помощью конфигурационного файла dipc.conf. Изменение адреса арбитра на компьютере перемещает этот компьютер в другой кластер. Машина, на которой выполняется процесс арбитра, может работать в кластере, как и всякая другая машина.



2004-06-22