Н.Вьюкова
1. Сервер Informix-Online Dynamic Server
Архитектура сервера Informix-ODS получила название "динамическая масштабируемая
архитектура" (DSA). Суть ее заключается в том, что одновременно выполняется относительно
небольшое число серверных процессов (виртуальных процессоров, ВП), которые разделяют между
собой работу по обслуживанию множества клиентов. По сравнению с более ранними моделями
сервера INFORMIX, где для каждого клиента создавался индивидуальный серверный процесс,
новая модель обладает рядом преимуществ:
Разделяемая память - это механизм операционной системы, на котором основано разделение
данных между виртуальными процессорами и потоками сервера. Разделение данных
позволяет:
Операции ввода-вывода, как правило, образуют наиболее медленную компоненту обработки баз
данных. Поэтому от их реализации существенно зависит общая продуктивность
сервера. Для В сервере Informix-ODS применяются следующие механизмы, которые способствуют
оптимизации ввода-вывода и повышению надежности:
2. Сервер Informix-Online EXtended Parallel Server
Системы с массовым параллелизмом (MPP) и слабосвязанные (кластерные) системы, для которых
предназначена модель сервера Informix-OXPS, обладают двумя важнейшими преимуществами -
высоким потенциалом отказоустойчивости и широкими возможностями наращивания
производительности.
MPP и слабосвязанные системы, называемые часто архитектурами без разделяемых ресурсов,
представляют собой быстрые сети, связывающие однопроцессорные или симметричные
многопроцессорные системы - узлы. Если база данных поделена между множеством узлов, то отказ
одного из них приведет лишь к недоступности относящихся к нему данных. Остальные данные
будут по-прежнему доступны пользователям. Если же в конфигурации предусмотрено аварийное
переключение узлов, то доступ к данным отказавшего узла будет автоматически
восстановлен.
Для приложений DSS, имеющих сложный аналитический характер и предполагающих обработку
очень больших массивов данных, критичной может оказаться способность платформы к
наращиванию мощности параллельных вычислений. Число процессоров, которые реально
способны поддерживать сегодняшние системы SMP, ограничено пропускной способностью
системной шины; их практическая масштабируемость обеспечивается лишь с ростом количества
процессоров до 32.
Преимущества аппаратных платформ без разделяемых ресурсов - это лишь предпосылки к
созданию высокопроизводительной и устойчивой к отказам среды баз данных. В последующих
разделах мы покажем, как эти предпосылки реализуются в архитектурных и технологических
решениях сервера Informix-OXPS.
Informix-OXPS доступен в настоящее время для платформ IBM SP2, ICL Goldrush, AT&T 5100;
планируются реализации для платформ Pyramid/SNI Reliant RM1000, а также кластерных
платформ Sun Microsystems Inc., Hewlett-Packard Co., Sequent Computer Systems Inc., Silicon
Graphics Inc., Intel. Предполагается, что в перспективе будет обеспечена поддержка всех платформ
этих типов, работающих под управлением ОС UNIX.
Подобно аппаратным платформам, для которых он предназначен, Informix OXPS построен на
принципах относительной независимости узлов и неразделения ресурсов. Независимость узлов
выражается в том, что каждый из них выполняет свой экземпляр программного обеспечения
СУБД, которое включает сервисы протоколирования, восстановления, управления блокировками
и управления буферами. Узел, на котором выполняются эти сервисы, называется ко-сервером.
На каждом ко-сервере выполняются также компоненты, отвечающие за разбиение запроса на
подзадачи и их распределение между ко-серверами:
Каждый узел, владея некоторым фрагментом данных, при помощи менеджера метаданных может
получить информацию о местонахождении остальных данных. Если узлу нужны внешние данные,
то он посылает ко-серверу, который ими владеет, запрос на обработку. Ко-сервер, получивший
запрос, выбирает требуемые данные, выполняет заказанный вид обработки и возвращает
результат заказчику. Процесс отсылки запросов другим узлам называется передачей функций.
Некоторые конкурирующие СУБД используют для обменов менее эффективную модель передачи
данных, называемой также передачей ввода-вывода. Схема передачи данных предполагает, что
каждый узел сам прочитывает необходимые ему данные, а не запрашивает их сканирование и
обработку у других узлов. Это порождает избыточный сетевой трафик, поскольку узлу, возможно,
нужна лишь часть прочитанных данных.
3. Технологии параллельной обработки
Масштабируемость СУБД характеризуется двумя факторами, которые можно назвать линейным
наращиванием и линейным ускорением. Линейное наращивание означает, что при двукратном
увеличении аппаратных ресурсов СУБД будет за то же время производить вдвое больший объем
обработки данных. Линейное ускорение означает, что при двукратном увеличении аппаратных
ресурсов СУБД станет выполнять приложения вдвое быстрее. В идеале хотелось бы рассчитывать
на линейную наращиваемость и ускоряемость при неограниченном росте числа ресурсов.
Для того чтобы исключить по возможности узкие места программного характера и перекосы в
распределении данных, в серверах Informix применяются механизмы фрагментации данных и
фрагментации выполнения. В Informix-OXPS этой же цели служит принцип фрагментации
управления, а в Informix-ODS - многопотоковая архитектура.
Серверы Informix поддерживают горизонтальную фрагментацию таблиц. Это такой способ
хранения таблицы, когда совокупность ее строк разбивается на несколько групп согласно
некоторому правилу, и эти группы хранятся на разных дисковых разделах. В Informix-OXPS
фрагменты таблицы могут распределяться между дисками разных узлов.
Благодаря фрагментации:
Термином "фрагментация выполнения" обозначается разбиение запроса на несколько подзапросов
и их параллельное выполнение (т. е. вертикальный параллелизм); подзапросы затем могут быть
разбиты на подзадачи, выполняемые параллельно (горизонтальный параллелизм, рис. 1).
t | |||||
---|---|---|---|---|---|
write | |||||
sort | |||||
merge | |||||
scan | |||||
a | b | c |
Рис.1. Сокращение времени обработки за счет применения вертикального и горизонтального параллелизма.
Методы фрагментации выполнения применяется в обеих моделях серверов, с той разницей, что
Informix-ODS для выполнения подзапросов и подзадач создает потоки, выполняемые параллельно
на нескольких процессорах, а в Informix-OXPS выполнение подзапросов и подзадач распределяется
между ко-серверами. Фрагментация выполнения дает многократный выигрыш в
производительности на следующих типах задач:
3.3.1. Вертикальный параллелизм. Итераторы
Элементарные операции, из которых состоит реализация любого запроса, называются
итераторами. Итератор - это программный объект, который воспринимает потоки строк от одного
или двух источников, выполняет над ними некоторый вид обработки и выдает результирующий
поток строк. Источниками данных могут служить дисковые файлы, сетевые соединения,
результирующие потоки других итераторов. Основное свойство итераторов - единообразие их
внешнего интерфейса, благодаря которому они могут произвольным образом объединяться.
Рассмотрим пример выполнения запроса:
3.3.2. Горизонтальный параллелизм. Рефрагментация промежуточных
результатов
Для того чтобы ускорить выполнение запроса, для каждой элементарной операции создается
несколько итераторов, которые распределяются между ко-серверами (OXPS) или выполняются как
отдельные потоки (ODS). Координацией совместной деятельности множества однотипных
итераторов занимается итератор типа EXCHANGE. EXCAHGE рефрагментирует результаты,
полученные от нижележащих итераторов и передает их итераторам верхнего уровня (рис. 3).
3.3.3. Баланс между приложениями OLTP и DSS
Задачи, выполняемые на сервере СУБД, можно разделить на три категории: OLTP, DSS и пакетной
обработки.
Пример OLTP-запроса: Есть ли свободный номер в какой-либо берлинской гостинице на 8-е
декабря?
Пример DSS-запроса: Каковы будут затраты на реализацию стратегии X охраны здоровья
сотрудников по сравнению со стратегией Y с учетом демографического профиля компании?
Рис 2. Дерево реализации запроса состоит из итераторов. Каждый итератор производит заданный вид обработки по мере поступления входных данных, не дожидаясь завершения итераторов нижнего уровня.
Примеры заданий пакетной обработки - массовая загрузка данных, выдача сложных отчетов,
действия по реорганизации базы данных.
Архитектурные и технологические решения, о которых говорилось выше, направлены на то, чтобы
обеспечить эффективную обработку всех типов заданий. Однако не менее важная проблема -
обеспечить рациональное одновременное выполнение смеси таких задач на сервере. Если
применение методов фрагментации выполнения ничем не ограничено, то сильно распараллеленное
выполнение нескольких сложных запросов приведет к недопустимому замедлению OLTP-
приложений, выполняющихся на том же сервере.
Для решения этой проблемы предусмотрены механизмы регулирования, которые позволяют
динамически управлять степенью распараллеливания запросов и долей системных ресурсов,
выделяемых для параллельной обработки сложных запросов. В часы наиболее активной работы
приложений OLTP запросы DSS могут выполняться с невысокой степенью распараллеливания. В
остальное время, или на серверах, где приложения OLTP отсутствуют, устанавливается
максимальная степень использования параллельной обработки.
4. Сервер Informix - среда высокой доступности данных
Серверные продукты Informix содержат целый спектр средств для поддержания доступности
данных. Сочетание этих средств позволяет обеспечить разные уровни надежности и
отказоустойчивости в зависимости от потребностей приложений и от наличных аппаратных
ресурсов.
Рис.3. Один из вариантов применения горизонтального параллелизма для дерева итераторов рис.2
Каждый ко-сервер владеет некоторым набором дисков, на которых располагаются фрагменты
базы данных. Диски, как правило, являются двухпортовыми, и каждый из них физически соединен
еще с некоторым ко-сервером Informix-OXPS. Если в результате аппаратного или программного
сбоя узел выходит из строя, его диски автоматически передаются во владение альтернативным ко-
серверам, и доступность данных сохраняется. Диски, журнал транзакций, рабочую загрузку
отказавшего узла берут на себя остальные ко-серверы.
При отказе узла одна или несколько транзакций могли остаться незавершенными. Поэтому ко-
сервер, принявший журнал вышедшего из строя узла, запускает процедуру быстрого
восстановления, цель которой - привести данные в состояние физической и логической
целостности.
Обе модели серверов Informix располагают встроенными средствами зеркалирования дисковых
областей, что позволяет преодолевать последствия дисковых сбоев и обеспечивать непрерывную
доступность данных. Поддерживаются также аппаратные средства зеркалирования, если они
имеются. Преимущество собственных программных средств Informix в том, что они позволяют
избирательно задавать зеркалирование множества фрагментов, наиболее критичных для
работоспособности прикладной среды.
Механизм тиражирования Informix-ODS позволяет поддерживать копию первичного сервера на
вторичном сервере, который в обычном режиме доступен только на чтение и может, например,
использоваться для выполнения приложений DSS. При отказе первичного сервера вторичный
переключается в режим чтения-записи, и все клиенты переключаются на него.
Informix-OXPS обеспечивает тиражирование на уровне узлов: копия узла, содержащего базу (или
ее фрагмента), поддерживается на другом узле. При отказе основного узла клиенты переключаются
на дублирующий, продолжая работать с копией данных.
Во многих ситуациях при выходе из строя отдельных узлов или дисков вполне допустимой может
быть неполная обработка данных, что предпочтительнее, чем полный отказ в обслуживании.
Опция игнорирования позволяет обходить при обработке запросов фрагменты базы данных, если
они в данный момент недоступны.
Существенный фактор обеспечения непрерывной доступности данных - возможность выполнять
основные административные действия без останова сервера. Серверы Informix позволяют в
оперативном многопользовательском режиме выполнять такие процедуры, как изменение
параметров конфигурирования, рефрагментация таблиц, добавление и уничтожение столбцов,
создание и уничтожение индексов, сохранение и восстановление данных, замена диска, изменение
конфигурации узла OXPS.
5. Интегральные средства управления
Программное обеспечение Informix-OXPS тесно интегрировано с развитой средой системного
управления Tivoli Management Environment (TME), разработанной компанией Tivoli Systems Inc.
(Начиная с версии 8 аналогичные средства системного управления будут реализованы и для
Informix ODS.) Среда управления скрывает от администраторов внутреннюю сложность
аппаратных конфигураций кластерных архитектур и систем MPP, предоставляя единую точку
обзора объектов баз данных, независимо от их физического местоположения.
Управление базами данных существенно упрощается благодаря наглядному графическому
пользовательскому интерфейсу систем администрирования. Администратор работает с
графическим представлением объектов баз данных и легко может получить информацию о статусе
каждого из них. За счет интеграции со средой сообщений и планировщиком TME, предоставляется
единая точка планирования и обработки событий в базах данных, а также рассылки сообщений,
относящихся к состоянию баз данных.
В рамках TME поддерживается комплект развитых приложений, охватывающих все аспекты
деятельности, связанной с администрированием баз данных:
6. Заключение
В статье представлен обзор архитектурных решений и основных возможностей двух моделей
серверов СУБД Informix. Сервер Informix-ODS - рыночный продукт, широко применяемый для
реализации проектов самого разного характера. Сервер Informix-OXPS доступен пока для
ограниченного спектра платформ и не получил еще широкого распространения. Первоначальные
версии этого продукта ориентированы, прежде всего, на создание крупных хранилищ данных со
средствами обработки образов документов и мультимедийными возможностями. Литература
Разумеется, в небольшом докладе невозможно дать полный и глубокий анализ двух столь сложных
программных продуктов, каковыми являются серверы СУБД Informix-ODS и Informix-XPS.
Заинтересованный читатель найдет развернутую информацию об архитектуре и возможностях
серверных продуктов Informix в работах [3,4].