Московский государственный университет путей сообщения
Опубликован: 11.04.2006 | Доступ: свободный | Студентов: 1311 / 300 | Оценка: 4.39 / 4.00 | Длительность: 17:21:00
ISBN: 978-5-9556-0036-1
Специальности: Разработчик аппаратуры
Лекция 10:

Кластерная технология Parallel Sysplex

< Лекция 9 || Лекция 10: 123 || Лекция 11 >

Сервисы Sysplex для разделения данных

Для разделения данных в рамках структуры Parallel Sysplex имеются расширенные межсистемные сервисы (XES). Эти сервисы представляют собой средства для разделения данных между приложениями Sysplex. Они позволяют подсистемам и авторизованным программам использовать структуры Coupling Facility для высокопроизводительного разделения данных. Здесь под разделением данных понимается разделение любых типов данных между программами, выполняющимися на любых системах кластера [4.3,4.5].

Разделяемые данные могут располагаться в одной из трех структур Coupling Facility: структуры кэширования, структуры блокировки и списочные структуры. XES обеспечивает набор сервисов для связи с этими структурами в целом и определения их атрибутов (соединительные сервисы), а также другой набор сервисов, отдельный для каждой структуры. Это сервисы кэширования, сервисы блокировки и сервисы списков. Они используются коннекторами для вызова функций, поддерживаемых структурой соответствующего типа. Ниже даются определения перечисленных объектов.

Структуры и коннекторы

Структурой называется конструкция Coupling Facility, целью которой является поддержка разделения данных (например, данные в иерархической базе данных, сообщения в очереди сообщений) между многими коннекторами структур через набор XES-сервисов, не требующая непосредственного управления памятью [4.5]. Структура упрощает и стандартизирует доступ к памяти Coupling Facility. Все структуры Parallel Sysplex должны быть определены в политике управления ресурсами Coupling Facility CFRM.

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

Программа, использующая соединительные сервисы для соединения со структурой (и отсоединения от нее), а также для определения ее типа и атрибутов, называется коннектором. Соединенный со структурой, коннектор становится зарегистрированным для использования другими XES-сервисами в соответствии с типом структуры, к которой он подсоединен. Первый коннектор структуры определяет ее атрибуты, остальные коннекторы изменять их не могут. В структуре могут находиться, например, следующие атрибуты:

  • Информация о структуре, такая, как ее тип и постоянство. Тип структуры - это структура кэширования, блокировки или списочная. Следует отметить, что в то время, как структуры в целом предварительно определяются в политике CFRM, собственно тип структуры не определен до тех пор, пока с ней не свяжется первый пользователь. Постоянная структура - это такая структура, которая при отсоединении от нее всех коннекторов остается распределенной в Coupling Facility. Примерами таких структур являются разделяемые структуры очередей и блокирующие структуры. С другой стороны, структура виртуального метода доступа к данным (VTAM) не является постоянной структурой.
  • Информация о связях, такая, как постоянство связи. Постоянной называется связь, которая продолжает существовать, даже если работа коннектора завершилась аварийно. Непостоянная структура не будет удалена, если у нее существуют активные, или аварийные, но постоянные связи.
  • Информация о модификации структуры. Эта информация определяет, как структура может быть изменена после назначения. Кроме того, в аппаратной системной области памяти (HSA) находятся локальные векторы кэширования, обязательные для структур кэширования, и векторы списка извещений, необязательные для списочных структур. Они определяют взаимоотношения между коннекторами и структурами и оповещают о наступлении некоторого структурного события, например обновлении буфера данных или поступлении сообщения в списочную структуру.

Кэш-структуры и сервисы кэширования

Кэш-структуры и относящиеся к ним сервисы кэширования обеспечивают коннекторы последовательными данными и высокой скоростью доступа к ним [4.5]. Термин <последовательные данные> означает, что при добавлении к ним блока одним коннектором любой другой коннектор, взаимодействующий с этим же блоком через свой буфер, получит уведомление о необходимости обновления этих данных перед использованием. Этот процесс называется <обновлением буфера>. Любой коннектор может прочитать данные из кэш-структуры со скоростью, обеспечиваемой Coupling Facility, вместо чтения их с магнитного диска DASP (со значительно меньшей скоростью!). Для кэш-структур каждый коннектор указывает длину локального кэш-вектора в HSA. Каждый бит в локальном кэш-векторе указывает, были ли изменения содержания соответствующего локального буфера в пуле буферов коннектора.

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

Блокирующие структуры и блокирующие сервисы

Блокирующая структура может включать в себя две части. Первая часть - это блокирующая таблица. Назначением блокирующей таблицы является обеспечение эффективного способа сообщить о наличии потенциального соперничества за один и тот же ресурс между разделяющими данные клиентами [4.5]. Блокирующая таблица состоит из набора блокирующих входов, которые система ассоциирует с различными ресурсами. Количество входов в блокирующую таблицу определяется первым коннектором в момент подсоединения. Каждый вход в блокирующую таблицу идентифицирует коннекторы, которые могут претендовать на ресурс, <хешированный> на этот вход. (Под хешированием понимается способ организации таблиц, обеспечивающий эффективный поиск элементов и пополнение таблицы. Положение элемента в хеш-таблице определяется значением функции расстановки, отображающей множество значений возможных ключей элементов данных в множество индексов таблицы и обеспечивающей равномерное ее заполнение). Вход в блокирующую таблицу также идентифицирует <менеджер соперничества>, или глобальный блокирующий менеджер для ресурсов, хешированных на данный вход.

Если опасность потенциального соперничества за ресурс отсутствует, то блокирующий запрос может быть немедленно выполнен (блокирующим называется запрос, делающий некоторый ресурс недоступным для других запросов на период его обработки). Если же блокирующая таблица показывает возможность возникновения потенциального соперничества, то производится определение места, где может возникнуть конфликт между двумя запросами. Перечисленные действия выполняются глобальным блокирующим менеджером.

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

Клиентские программы пользуются услугами блокирующих сервисов для управления блокировками при доступе к разделяемым данным. Основными сервисами этой группы являются:

  • Сервис захвата ресурса (OBTAIN). Этот сервис блокирует доступ к ресурсу, имя которого указывается в параметре вызова, для других клиентских приложений.
  • Сервис освобождения ресурса (RELEASE). Этот сервис освобождает ресурс, захваченный вышеуказанным сервисом, для доступа к нему клиентских приложений.
  • Глобальный блокирующий менеджер. Этот сервис поддерживает информацию о каждом ресурсе в пространстве данных и принимает решение об удовлетворении запросов на захват ресурсов, поступающих от клиентских программ.

Списочные структуры и списочные сервисы

Списочные сервисы позволяют подсистемам и зарегистрированным приложениям, выполняющимся на одном кластере, использовать Coupling Facility для разделения данных, организованных в списочные структуры. Списочная структура состоит из набора списков и необязательной блокирующей таблицы [4.5]. Информация заносится в список в виде набора входов в список. Входы в список, как правило, сортируются по значению какого-либо ключа. Блокирующая таблица, как и в случае блокирующих структур, может быть использована для упорядочивания доступа к ресурсам списочной структуры. Списочная структура с блокирующей таблицей называется списочной структурой с последовательным доступом.

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

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

Точками входов в списки являются заголовки списков. Коннектор определяет, как будут использоваться заголовки списков. Например, сервер очередей (Common Queue Server, CQS) распределяет 192 заголовка в списках распределенных очередей сообщений. Одни из них назначаются для транзакций, другие - для организации очередей сообщений.

Одним из важнейших списочных сервисов является монитор управления событиями (Event Monitor Control, EMC). Этот сервис предназначен для информирования коннекторов о наступлении ожидаемых событий. EMC использует выделенную ему область в списочной структуре, называемой областью монитора событий. Первый коннектор может отвести часть списочной структуры под эту область. В дальнейшем в ней формируются очереди событий, назначенных как всему списку в целом, так и отдельным входам. Когда происходит одно из ожидаемых событий, соответствующий коннектор информируется об этом монитором управления событиями.

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

< Лекция 9 || Лекция 10: 123 || Лекция 11 >